google-adwords-api 0.1.2 → 0.2.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 (303) hide show
  1. data/ChangeLog +5 -0
  2. data/README +18 -21
  3. data/Rakefile +1 -1
  4. data/adwords_api.yml +2 -0
  5. data/examples/v200909/add_ad_extension_override.rb +5 -5
  6. data/examples/v200909/add_ad_group.rb +5 -5
  7. data/examples/v200909/add_ad_group_criteria.rb +6 -6
  8. data/examples/v200909/add_ads.rb +7 -6
  9. data/examples/v200909/add_campaign.rb +5 -5
  10. data/examples/v200909/add_campaign_ad_extension.rb +5 -5
  11. data/examples/v200909/add_negative_campaign_criterion.rb +5 -5
  12. data/examples/v200909/check_campaigns.rb +5 -5
  13. data/examples/v200909/delete_ad.rb +5 -5
  14. data/examples/v200909/delete_ad_group.rb +5 -5
  15. data/examples/v200909/delete_ad_group_criterion.rb +5 -5
  16. data/examples/v200909/delete_campaign.rb +5 -5
  17. data/examples/v200909/get_all_active_ad_group_criteria.rb +5 -5
  18. data/examples/v200909/get_all_ad_extension_overrides.rb +5 -5
  19. data/examples/v200909/get_all_ad_group_criteria.rb +5 -5
  20. data/examples/v200909/get_all_ad_groups.rb +5 -5
  21. data/examples/v200909/get_all_ad_params.rb +5 -5
  22. data/examples/v200909/get_all_ads.rb +5 -5
  23. data/examples/v200909/get_all_campaign_ad_extensions.rb +5 -5
  24. data/examples/v200909/get_all_campaign_targets.rb +5 -5
  25. data/examples/v200909/get_all_campaigns.rb +5 -5
  26. data/examples/v200909/get_all_disapproved_ads.rb +5 -5
  27. data/examples/v200909/get_all_paused_campaigns.rb +5 -5
  28. data/examples/v200909/get_conversion_optimizer_eligibility.rb +5 -5
  29. data/examples/v200909/get_geo_location_info.rb +5 -5
  30. data/examples/v200909/get_method_cost.rb +5 -5
  31. data/examples/v200909/get_operation_count.rb +5 -5
  32. data/examples/v200909/get_related_keywords.rb +20 -19
  33. data/examples/v200909/get_related_placements.rb +22 -21
  34. data/examples/v200909/get_total_usage_units_per_month.rb +5 -5
  35. data/examples/v200909/get_unit_count.rb +5 -5
  36. data/examples/v200909/perform_bulk_mutate_job.rb +5 -5
  37. data/examples/v200909/set_ad_params.rb +5 -5
  38. data/examples/v200909/set_campaign_targets.rb +5 -5
  39. data/examples/v200909/update_ad.rb +5 -5
  40. data/examples/v200909/update_ad_group.rb +5 -5
  41. data/examples/v200909/update_ad_group_criterion.rb +5 -5
  42. data/examples/v200909/update_campaign.rb +5 -5
  43. data/examples/v201003/add_ad_extension_override.rb +5 -5
  44. data/examples/v201003/add_ad_group.rb +5 -5
  45. data/examples/v201003/add_ad_group_criteria.rb +5 -5
  46. data/examples/v201003/add_ads.rb +7 -6
  47. data/examples/v201003/add_campaign.rb +5 -5
  48. data/examples/v201003/add_campaign_ad_extension.rb +5 -5
  49. data/examples/v201003/add_keywords_performance_report_definition.rb +5 -5
  50. data/examples/v201003/add_negative_campaign_criterion.rb +5 -5
  51. data/examples/v201003/check_campaigns.rb +5 -5
  52. data/examples/v201003/delete_ad.rb +5 -5
  53. data/examples/v201003/delete_ad_group.rb +5 -5
  54. data/examples/v201003/delete_ad_group_criterion.rb +5 -5
  55. data/examples/v201003/delete_campaign.rb +5 -5
  56. data/examples/v201003/download_report.rb +5 -0
  57. data/examples/v201003/get_all_active_ad_group_criteria.rb +5 -5
  58. data/examples/v201003/get_all_ad_extension_overrides.rb +5 -5
  59. data/examples/v201003/get_all_ad_group_criteria.rb +5 -5
  60. data/examples/v201003/get_all_ad_groups.rb +5 -5
  61. data/examples/v201003/get_all_ad_params.rb +5 -5
  62. data/examples/v201003/get_all_ads.rb +5 -5
  63. data/examples/v201003/get_all_campaign_ad_extensions.rb +5 -5
  64. data/examples/v201003/get_all_campaign_targets.rb +5 -5
  65. data/examples/v201003/get_all_campaigns.rb +5 -5
  66. data/examples/v201003/get_all_disapproved_ads.rb +5 -5
  67. data/examples/v201003/get_all_images.rb +5 -5
  68. data/examples/v201003/get_all_paused_campaigns.rb +5 -5
  69. data/examples/v201003/get_all_report_definitions.rb +5 -5
  70. data/examples/v201003/get_all_videos.rb +5 -5
  71. data/examples/v201003/get_conversion_optimizer_eligibility.rb +5 -5
  72. data/examples/v201003/get_criterion_bid_landscape.rb +5 -5
  73. data/examples/v201003/get_geo_location_info.rb +5 -5
  74. data/examples/v201003/get_method_cost.rb +5 -5
  75. data/examples/v201003/get_operation_count.rb +5 -5
  76. data/examples/v201003/get_related_keywords.rb +20 -19
  77. data/examples/v201003/get_related_placements.rb +19 -15
  78. data/examples/v201003/get_report_fields.rb +5 -5
  79. data/examples/v201003/get_total_usage_units_per_month.rb +5 -5
  80. data/examples/v201003/get_unit_count.rb +5 -5
  81. data/examples/v201003/perform_bulk_mutate_job.rb +5 -5
  82. data/examples/v201003/set_ad_params.rb +5 -5
  83. data/examples/v201003/set_campaign_targets.rb +5 -5
  84. data/examples/v201003/update_ad.rb +5 -5
  85. data/examples/v201003/update_ad_group.rb +5 -5
  86. data/examples/v201003/update_ad_group_criterion.rb +5 -5
  87. data/examples/v201003/update_campaign.rb +5 -5
  88. data/examples/v201003/upload_image.rb +7 -6
  89. data/examples/v201008/add_ad_extension_override.rb +5 -5
  90. data/examples/v201008/add_ad_group.rb +5 -5
  91. data/examples/v201008/add_ad_group_criteria.rb +5 -5
  92. data/examples/v201008/add_ads.rb +7 -6
  93. data/examples/v201008/add_campaign.rb +5 -5
  94. data/examples/v201008/add_campaign_ad_extension.rb +5 -5
  95. data/examples/v201008/add_experiment.rb +5 -5
  96. data/examples/v201008/add_keywords_performance_report_definition.rb +5 -5
  97. data/examples/v201008/add_negative_campaign_criterion.rb +5 -5
  98. data/examples/v201008/add_user_list.rb +5 -5
  99. data/examples/v201008/check_campaigns.rb +5 -5
  100. data/examples/v201008/delete_ad.rb +5 -5
  101. data/examples/v201008/delete_ad_group.rb +5 -5
  102. data/examples/v201008/delete_ad_group_criterion.rb +5 -5
  103. data/examples/v201008/delete_bulk_mutate_job.rb +5 -5
  104. data/examples/v201008/delete_campaign.rb +5 -5
  105. data/examples/v201008/delete_experiment.rb +5 -5
  106. data/examples/v201008/delete_user_list.rb +5 -5
  107. data/examples/v201008/download_report.rb +5 -0
  108. data/examples/v201008/get_account_hierarchy.rb +5 -5
  109. data/examples/v201008/get_all_account_changes.rb +5 -5
  110. data/examples/v201008/get_all_active_ad_group_criteria.rb +5 -5
  111. data/examples/v201008/get_all_ad_extension_overrides.rb +5 -5
  112. data/examples/v201008/get_all_ad_group_criteria.rb +5 -5
  113. data/examples/v201008/get_all_ad_groups.rb +5 -5
  114. data/examples/v201008/get_all_ad_params.rb +5 -5
  115. data/examples/v201008/get_all_ads.rb +5 -5
  116. data/examples/v201008/get_all_campaign_ad_extensions.rb +5 -5
  117. data/examples/v201008/get_all_campaign_targets.rb +5 -5
  118. data/examples/v201008/get_all_campaigns.rb +5 -5
  119. data/examples/v201008/get_all_disapproved_ads.rb +5 -5
  120. data/examples/v201008/get_all_experiments.rb +5 -5
  121. data/examples/v201008/get_all_images.rb +5 -5
  122. data/examples/v201008/get_all_paused_campaigns.rb +5 -5
  123. data/examples/v201008/get_all_report_definitions.rb +5 -5
  124. data/examples/v201008/get_all_user_lists.rb +5 -5
  125. data/examples/v201008/get_all_videos.rb +5 -5
  126. data/examples/v201008/get_bulk_mutate_job.rb +5 -5
  127. data/examples/v201008/get_campaign_alerts.rb +5 -5
  128. data/examples/v201008/get_conversion_optimizer_eligibility.rb +5 -5
  129. data/examples/v201008/get_criterion_bid_landscape.rb +5 -5
  130. data/examples/v201008/get_geo_location_info.rb +5 -5
  131. data/examples/v201008/get_method_cost.rb +5 -5
  132. data/examples/v201008/get_operation_count.rb +5 -5
  133. data/examples/v201008/get_related_keywords.rb +20 -19
  134. data/examples/v201008/get_related_placements.rb +22 -21
  135. data/examples/v201008/get_report_fields.rb +5 -5
  136. data/examples/v201008/get_total_usage_units_per_month.rb +5 -5
  137. data/examples/v201008/get_traffic_estimates.rb +5 -5
  138. data/examples/v201008/get_unit_count.rb +5 -5
  139. data/examples/v201008/handle_partial_failures.rb +5 -5
  140. data/examples/v201008/handle_policy_violation_error.rb +5 -5
  141. data/examples/v201008/perform_bulk_mutate_job.rb +5 -5
  142. data/examples/v201008/promote_experiment.rb +5 -5
  143. data/examples/v201008/set_ad_params.rb +5 -5
  144. data/examples/v201008/set_campaign_targets.rb +5 -5
  145. data/examples/v201008/update_ad.rb +5 -5
  146. data/examples/v201008/update_ad_group.rb +5 -5
  147. data/examples/v201008/update_ad_group_criterion.rb +5 -5
  148. data/examples/v201008/update_campaign.rb +5 -5
  149. data/examples/v201008/update_user_list.rb +5 -5
  150. data/examples/v201008/upload_image.rb +7 -6
  151. data/examples/v201101/add_ad_extension_override.rb +5 -5
  152. data/examples/v201101/add_ad_group.rb +5 -5
  153. data/examples/v201101/add_ad_group_criteria.rb +5 -5
  154. data/examples/v201101/add_ads.rb +7 -6
  155. data/examples/v201101/add_campaign.rb +5 -5
  156. data/examples/v201101/add_campaign_ad_extension.rb +5 -5
  157. data/examples/v201101/add_conversion.rb +5 -5
  158. data/examples/v201101/add_experiment.rb +5 -5
  159. data/examples/v201101/add_keywords_performance_report_definition.rb +5 -5
  160. data/examples/v201101/add_mcc_report_definition.rb +5 -5
  161. data/examples/v201101/add_negative_campaign_criterion.rb +5 -5
  162. data/examples/v201101/add_user_list.rb +5 -5
  163. data/examples/v201101/check_campaigns.rb +5 -5
  164. data/examples/v201101/delete_ad.rb +5 -5
  165. data/examples/v201101/delete_ad_group.rb +5 -5
  166. data/examples/v201101/delete_ad_group_criterion.rb +5 -5
  167. data/examples/v201101/delete_bulk_mutate_job.rb +5 -5
  168. data/examples/v201101/delete_campaign.rb +5 -5
  169. data/examples/v201101/delete_experiment.rb +5 -5
  170. data/examples/v201101/delete_user_list.rb +5 -5
  171. data/examples/v201101/download_mcc_report.rb +5 -0
  172. data/examples/v201101/download_mcc_report_as_file.rb +5 -0
  173. data/examples/v201101/download_report.rb +5 -0
  174. data/examples/v201101/get_account_hierarchy.rb +5 -5
  175. data/examples/v201101/get_ad_group_bid_landscape.rb +5 -5
  176. data/examples/v201101/get_all_account_changes.rb +5 -5
  177. data/examples/v201101/get_all_active_ad_group_criteria.rb +5 -5
  178. data/examples/v201101/get_all_ad_extension_overrides.rb +5 -5
  179. data/examples/v201101/get_all_ad_group_criteria.rb +5 -5
  180. data/examples/v201101/get_all_ad_groups.rb +5 -5
  181. data/examples/v201101/get_all_ad_params.rb +5 -5
  182. data/examples/v201101/get_all_ads.rb +5 -5
  183. data/examples/v201101/get_all_campaign_ad_extensions.rb +5 -5
  184. data/examples/v201101/get_all_campaign_targets.rb +5 -5
  185. data/examples/v201101/get_all_campaigns.rb +5 -5
  186. data/examples/v201101/get_all_conversions.rb +5 -5
  187. data/examples/v201101/get_all_disapproved_ads.rb +5 -5
  188. data/examples/v201101/get_all_experiments.rb +5 -5
  189. data/examples/v201101/get_all_images.rb +5 -5
  190. data/examples/v201101/get_all_paused_campaigns.rb +5 -5
  191. data/examples/v201101/get_all_report_definitions.rb +5 -5
  192. data/examples/v201101/get_all_user_lists.rb +5 -5
  193. data/examples/v201101/get_all_videos.rb +5 -5
  194. data/examples/v201101/get_bulk_mutate_job.rb +5 -5
  195. data/examples/v201101/get_campaign_alerts.rb +5 -5
  196. data/examples/v201101/get_conversion_optimizer_eligibility.rb +5 -5
  197. data/examples/v201101/get_criterion_bid_landscape.rb +5 -5
  198. data/examples/v201101/get_geo_location_info.rb +5 -5
  199. data/examples/v201101/get_keyword_opportunities.rb +5 -5
  200. data/examples/v201101/get_method_cost.rb +5 -5
  201. data/examples/v201101/get_operation_count.rb +5 -5
  202. data/examples/v201101/get_related_keywords.rb +20 -19
  203. data/examples/v201101/get_related_placements.rb +22 -21
  204. data/examples/v201101/get_report_fields.rb +5 -5
  205. data/examples/v201101/get_total_usage_units_per_month.rb +5 -5
  206. data/examples/v201101/get_traffic_estimates.rb +5 -5
  207. data/examples/v201101/get_unit_count.rb +5 -5
  208. data/examples/v201101/handle_partial_failures.rb +5 -5
  209. data/examples/v201101/handle_policy_violation_error.rb +5 -5
  210. data/examples/v201101/perform_bulk_mutate_job.rb +5 -5
  211. data/examples/v201101/promote_experiment.rb +5 -5
  212. data/examples/v201101/set_ad_params.rb +5 -5
  213. data/examples/v201101/set_campaign_targets.rb +5 -5
  214. data/examples/v201101/update_ad.rb +5 -5
  215. data/examples/v201101/update_ad_group.rb +5 -5
  216. data/examples/v201101/update_ad_group_criterion.rb +5 -5
  217. data/examples/v201101/update_campaign.rb +5 -5
  218. data/examples/v201101/update_conversion.rb +5 -5
  219. data/examples/v201101/update_user_list.rb +5 -5
  220. data/examples/v201101/upload_image.rb +7 -6
  221. data/lib/adwords_api.rb +59 -30
  222. data/lib/adwords_api/api_config.rb +18 -5
  223. data/lib/adwords_api/extensions.rb +2 -5
  224. data/lib/adwords_api/soap4r_response_handler.rb +1 -1
  225. data/lib/adwords_api/v13/AccountServiceDriver.rb +5 -5
  226. data/lib/adwords_api/v13/ReportServiceDriver.rb +7 -7
  227. data/lib/adwords_api/v13/TrafficEstimatorServiceDriver.rb +4 -4
  228. data/lib/adwords_api/v200909/AdExtensionOverrideServiceDriver.rb +2 -2
  229. data/lib/adwords_api/v200909/AdGroupAdServiceDriver.rb +2 -2
  230. data/lib/adwords_api/v200909/AdGroupCriterionServiceDriver.rb +2 -2
  231. data/lib/adwords_api/v200909/AdGroupServiceDriver.rb +2 -2
  232. data/lib/adwords_api/v200909/AdParamServiceDriver.rb +2 -2
  233. data/lib/adwords_api/v200909/BulkMutateJobServiceDriver.rb +2 -2
  234. data/lib/adwords_api/v200909/CampaignAdExtensionServiceDriver.rb +2 -2
  235. data/lib/adwords_api/v200909/CampaignCriterionServiceDriver.rb +2 -2
  236. data/lib/adwords_api/v200909/CampaignServiceDriver.rb +2 -2
  237. data/lib/adwords_api/v200909/CampaignTargetServiceDriver.rb +2 -2
  238. data/lib/adwords_api/v200909/GeoLocationServiceDriver.rb +1 -1
  239. data/lib/adwords_api/v200909/InfoServiceDriver.rb +1 -1
  240. data/lib/adwords_api/v200909/TargetingIdeaServiceDriver.rb +2 -2
  241. data/lib/adwords_api/v201003/AdExtensionOverrideServiceDriver.rb +2 -2
  242. data/lib/adwords_api/v201003/AdGroupAdServiceDriver.rb +2 -2
  243. data/lib/adwords_api/v201003/AdGroupCriterionServiceDriver.rb +2 -2
  244. data/lib/adwords_api/v201003/AdGroupServiceDriver.rb +2 -2
  245. data/lib/adwords_api/v201003/AdParamServiceDriver.rb +2 -2
  246. data/lib/adwords_api/v201003/BidLandscapeServiceDriver.rb +1 -1
  247. data/lib/adwords_api/v201003/BulkMutateJobServiceDriver.rb +2 -2
  248. data/lib/adwords_api/v201003/CampaignAdExtensionServiceDriver.rb +2 -2
  249. data/lib/adwords_api/v201003/CampaignCriterionServiceDriver.rb +2 -2
  250. data/lib/adwords_api/v201003/CampaignServiceDriver.rb +2 -2
  251. data/lib/adwords_api/v201003/CampaignTargetServiceDriver.rb +2 -2
  252. data/lib/adwords_api/v201003/GeoLocationServiceDriver.rb +1 -1
  253. data/lib/adwords_api/v201003/InfoServiceDriver.rb +1 -1
  254. data/lib/adwords_api/v201003/MediaServiceDriver.rb +2 -2
  255. data/lib/adwords_api/v201003/ReportDefinitionServiceDriver.rb +3 -3
  256. data/lib/adwords_api/v201003/TargetingIdeaServiceDriver.rb +2 -2
  257. data/lib/adwords_api/v201008/AdExtensionOverrideServiceDriver.rb +2 -2
  258. data/lib/adwords_api/v201008/AdGroupAdServiceDriver.rb +2 -2
  259. data/lib/adwords_api/v201008/AdGroupCriterionServiceDriver.rb +2 -2
  260. data/lib/adwords_api/v201008/AdGroupServiceDriver.rb +2 -2
  261. data/lib/adwords_api/v201008/AdParamServiceDriver.rb +2 -2
  262. data/lib/adwords_api/v201008/AlertServiceDriver.rb +1 -1
  263. data/lib/adwords_api/v201008/BidLandscapeServiceDriver.rb +1 -1
  264. data/lib/adwords_api/v201008/BulkMutateJobServiceDriver.rb +2 -2
  265. data/lib/adwords_api/v201008/CampaignAdExtensionServiceDriver.rb +2 -2
  266. data/lib/adwords_api/v201008/CampaignCriterionServiceDriver.rb +2 -2
  267. data/lib/adwords_api/v201008/CampaignServiceDriver.rb +2 -2
  268. data/lib/adwords_api/v201008/CampaignTargetServiceDriver.rb +2 -2
  269. data/lib/adwords_api/v201008/CustomerSyncServiceDriver.rb +1 -1
  270. data/lib/adwords_api/v201008/ExperimentServiceDriver.rb +2 -2
  271. data/lib/adwords_api/v201008/GeoLocationServiceDriver.rb +1 -1
  272. data/lib/adwords_api/v201008/InfoServiceDriver.rb +1 -1
  273. data/lib/adwords_api/v201008/MediaServiceDriver.rb +2 -2
  274. data/lib/adwords_api/v201008/ReportDefinitionServiceDriver.rb +3 -3
  275. data/lib/adwords_api/v201008/ServicedAccountServiceDriver.rb +1 -1
  276. data/lib/adwords_api/v201008/TargetingIdeaServiceDriver.rb +2 -2
  277. data/lib/adwords_api/v201008/TrafficEstimatorServiceDriver.rb +1 -1
  278. data/lib/adwords_api/v201008/UserListServiceDriver.rb +2 -2
  279. data/lib/adwords_api/v201101/AdExtensionOverrideServiceDriver.rb +2 -2
  280. data/lib/adwords_api/v201101/AdGroupAdServiceDriver.rb +2 -2
  281. data/lib/adwords_api/v201101/AdGroupCriterionServiceDriver.rb +2 -2
  282. data/lib/adwords_api/v201101/AdGroupServiceDriver.rb +2 -2
  283. data/lib/adwords_api/v201101/AdParamServiceDriver.rb +2 -2
  284. data/lib/adwords_api/v201101/AlertServiceDriver.rb +1 -1
  285. data/lib/adwords_api/v201101/BulkMutateJobServiceDriver.rb +2 -2
  286. data/lib/adwords_api/v201101/BulkOpportunityServiceDriver.rb +1 -1
  287. data/lib/adwords_api/v201101/CampaignAdExtensionServiceDriver.rb +2 -2
  288. data/lib/adwords_api/v201101/CampaignCriterionServiceDriver.rb +2 -2
  289. data/lib/adwords_api/v201101/CampaignServiceDriver.rb +2 -2
  290. data/lib/adwords_api/v201101/CampaignTargetServiceDriver.rb +2 -2
  291. data/lib/adwords_api/v201101/ConversionTrackerServiceDriver.rb +2 -2
  292. data/lib/adwords_api/v201101/CustomerSyncServiceDriver.rb +1 -1
  293. data/lib/adwords_api/v201101/DataServiceDriver.rb +2 -2
  294. data/lib/adwords_api/v201101/ExperimentServiceDriver.rb +2 -2
  295. data/lib/adwords_api/v201101/GeoLocationServiceDriver.rb +1 -1
  296. data/lib/adwords_api/v201101/InfoServiceDriver.rb +1 -1
  297. data/lib/adwords_api/v201101/MediaServiceDriver.rb +2 -2
  298. data/lib/adwords_api/v201101/ReportDefinitionServiceDriver.rb +3 -3
  299. data/lib/adwords_api/v201101/ServicedAccountServiceDriver.rb +1 -1
  300. data/lib/adwords_api/v201101/TargetingIdeaServiceDriver.rb +2 -2
  301. data/lib/adwords_api/v201101/TrafficEstimatorServiceDriver.rb +1 -1
  302. data/lib/adwords_api/v201101/UserListServiceDriver.rb +2 -2
  303. metadata +550 -539
@@ -31,6 +31,11 @@ def handle_partial_failures()
31
31
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
32
32
  # when called without parameters.
33
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
+
34
39
  ad_group_criterion_srv =
35
40
  adwords.service(:AdGroupCriterionService, API_VERSION)
36
41
 
@@ -101,11 +106,6 @@ def handle_partial_failures()
101
106
  end
102
107
 
103
108
  if __FILE__ == $0
104
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
105
- # variable to 'true'. This can be done either from your operating system
106
- # environment or via code, as done below.
107
- ENV['ADWORDSAPI_DEBUG'] = 'false'
108
-
109
109
  begin
110
110
  handle_partial_failures()
111
111
 
@@ -32,6 +32,11 @@ def handle_policy_violation_error()
32
32
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
33
  # when called without parameters.
34
34
  adwords = AdwordsApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # adwords.logger = Logger.new('adwords_xml.log')
39
+
35
40
  ad_group_ad_srv = adwords.service(:AdGroupAdService, API_VERSION)
36
41
 
37
42
  ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
@@ -112,11 +117,6 @@ def handle_policy_violation_error()
112
117
  end
113
118
 
114
119
  if __FILE__ == $0
115
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
116
- # variable to 'true'. This can be done either from your operating system
117
- # environment or via code, as done below.
118
- ENV['ADWORDSAPI_DEBUG'] = 'false'
119
-
120
120
  begin
121
121
  handle_policy_violation_error()
122
122
 
@@ -32,6 +32,11 @@ def perform_bulk_mutate_job()
32
32
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
33
  # when called without parameters.
34
34
  adwords = AdwordsApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # adwords.logger = Logger.new('adwords_xml.log')
39
+
35
40
  bulk_mutate_job_srv = adwords.service(:BulkMutateJobService, API_VERSION)
36
41
 
37
42
  campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
@@ -187,11 +192,6 @@ def perform_bulk_mutate_job()
187
192
  end
188
193
 
189
194
  if __FILE__ == $0
190
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
191
- # variable to 'true'. This can be done either from your operating system
192
- # environment or via code, as done below.
193
- ENV['ADWORDSAPI_DEBUG'] = 'false'
194
-
195
195
  begin
196
196
  perform_bulk_mutate_job()
197
197
 
@@ -33,6 +33,11 @@ def promote_experiment()
33
33
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
34
34
  # when called without parameters.
35
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
+
36
41
  experiment_srv = adwords.service(:ExperimentService, API_VERSION)
37
42
 
38
43
  experiment_id = 'INSERT_EXPERIMENT_ID_HERE'.to_i
@@ -54,11 +59,6 @@ def promote_experiment()
54
59
  end
55
60
 
56
61
  if __FILE__ == $0
57
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
58
- # variable to 'true'. This can be done either from your operating system
59
- # environment or via code, as done below.
60
- ENV['ADWORDSAPI_DEBUG'] = 'false'
61
-
62
62
  begin
63
63
  promote_experiment()
64
64
 
@@ -33,6 +33,11 @@ def set_ad_params()
33
33
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
34
34
  # when called without parameters.
35
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
+
36
41
  ad_group_ad_srv = adwords.service(:AdGroupAdService, API_VERSION)
37
42
  ad_param_srv = adwords.service(:AdParamService, API_VERSION)
38
43
 
@@ -90,11 +95,6 @@ def set_ad_params()
90
95
  end
91
96
 
92
97
  if __FILE__ == $0
93
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
94
- # variable to 'true'. This can be done either from your operating system
95
- # environment or via code, as done below.
96
- ENV['ADWORDSAPI_DEBUG'] = 'false'
97
-
98
98
  begin
99
99
  set_ad_params()
100
100
 
@@ -32,6 +32,11 @@ def set_campaign_targets()
32
32
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
33
  # when called without parameters.
34
34
  adwords = AdwordsApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # adwords.logger = Logger.new('adwords_xml.log')
39
+
35
40
  campaign_target_srv = adwords.service(:CampaignTargetService, API_VERSION)
36
41
 
37
42
  campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
@@ -77,11 +82,6 @@ def set_campaign_targets()
77
82
  end
78
83
 
79
84
  if __FILE__ == $0
80
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
81
- # variable to 'true'. This can be done either from your operating system
82
- # environment or via code, as done below.
83
- ENV['ADWORDSAPI_DEBUG'] = 'false'
84
-
85
85
  begin
86
86
  set_campaign_targets()
87
87
 
@@ -32,6 +32,11 @@ def update_ad()
32
32
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
33
  # when called without parameters.
34
34
  adwords = AdwordsApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # adwords.logger = Logger.new('adwords_xml.log')
39
+
35
40
  ad_group_ad_srv = adwords.service(:AdGroupAdService, API_VERSION)
36
41
 
37
42
  ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
@@ -61,11 +66,6 @@ def update_ad()
61
66
  end
62
67
 
63
68
  if __FILE__ == $0
64
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
65
- # variable to 'true'. This can be done either from your operating system
66
- # environment or via code, as done below.
67
- ENV['ADWORDSAPI_DEBUG'] = 'false'
68
-
69
69
  begin
70
70
  update_ad()
71
71
 
@@ -32,6 +32,11 @@ def update_ad_group()
32
32
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
33
  # when called without parameters.
34
34
  adwords = AdwordsApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # adwords.logger = Logger.new('adwords_xml.log')
39
+
35
40
  ad_group_srv = adwords.service(:AdGroupService, API_VERSION)
36
41
 
37
42
  ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
@@ -56,11 +61,6 @@ def update_ad_group()
56
61
  end
57
62
 
58
63
  if __FILE__ == $0
59
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
60
- # variable to 'true'. This can be done either from your operating system
61
- # environment or via code, as done below.
62
- ENV['ADWORDSAPI_DEBUG'] = 'false'
63
-
64
64
  begin
65
65
  update_ad_group()
66
66
 
@@ -32,6 +32,11 @@ def update_ad_group_criterion()
32
32
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
33
  # when called without parameters.
34
34
  adwords = AdwordsApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # adwords.logger = Logger.new('adwords_xml.log')
39
+
35
40
  ad_group_criterion_srv =
36
41
  adwords.service(:AdGroupCriterionService, API_VERSION)
37
42
 
@@ -74,11 +79,6 @@ def update_ad_group_criterion()
74
79
  end
75
80
 
76
81
  if __FILE__ == $0
77
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
78
- # variable to 'true'. This can be done either from your operating system
79
- # environment or via code, as done below.
80
- ENV['ADWORDSAPI_DEBUG'] = 'false'
81
-
82
82
  begin
83
83
  update_ad_group_criterion()
84
84
 
@@ -32,6 +32,11 @@ def update_campaign()
32
32
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
33
  # when called without parameters.
34
34
  adwords = AdwordsApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # adwords.logger = Logger.new('adwords_xml.log')
39
+
35
40
  campaign_srv = adwords.service(:CampaignService, API_VERSION)
36
41
 
37
42
  campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
@@ -59,11 +64,6 @@ def update_campaign()
59
64
  end
60
65
 
61
66
  if __FILE__ == $0
62
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
63
- # variable to 'true'. This can be done either from your operating system
64
- # environment or via code, as done below.
65
- ENV['ADWORDSAPI_DEBUG'] = 'false'
66
-
67
67
  begin
68
68
  update_campaign()
69
69
 
@@ -32,6 +32,11 @@ def update_conversion()
32
32
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
33
  # when called without parameters.
34
34
  adwords = AdwordsApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # adwords.logger = Logger.new('adwords_xml.log')
39
+
35
40
  conv_tracker_srv = adwords.service(:ConversionTrackerService, API_VERSION)
36
41
 
37
42
  conversion_id = 'INSERT_CONVERSION_ID_HERE'.to_i
@@ -62,11 +67,6 @@ def update_conversion()
62
67
  end
63
68
 
64
69
  if __FILE__ == $0
65
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
66
- # variable to 'true'. This can be done either from your operating system
67
- # environment or via code, as done below.
68
- ENV['ADWORDSAPI_DEBUG'] = 'false'
69
-
70
70
  begin
71
71
  update_conversion()
72
72
 
@@ -32,6 +32,11 @@ def update_user_list()
32
32
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
33
  # when called without parameters.
34
34
  adwords = AdwordsApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # adwords.logger = Logger.new('adwords_xml.log')
39
+
35
40
  user_list_srv = adwords.service(:UserListService, API_VERSION)
36
41
 
37
42
  user_list_id = 'INSERT_USER_LIST_ID_HERE'.to_i
@@ -57,11 +62,6 @@ def update_user_list()
57
62
  end
58
63
 
59
64
  if __FILE__ == $0
60
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
61
- # variable to 'true'. This can be done either from your operating system
62
- # environment or via code, as done below.
63
- ENV['ADWORDSAPI_DEBUG'] = 'false'
64
-
65
65
  begin
66
66
  update_user_list()
67
67
 
@@ -32,10 +32,16 @@ def upload_image()
32
32
  # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
33
  # when called without parameters.
34
34
  adwords = AdwordsApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # adwords.logger = Logger.new('adwords_xml.log')
39
+
35
40
  media_srv = adwords.service(:MediaService, API_VERSION)
36
41
 
37
42
  # Create image.
38
- image_url = 'https://sandbox.google.com/sandboximages/image.jpg'
43
+ image_url =
44
+ 'http://www.google.com/intl/en/adwords/select/images/samples/inline.jpg'
39
45
  # This utility method retrieves the contents of a URL using all of the config
40
46
  # options provided to the Api object.
41
47
  image_data = AdsCommon::Http.get(image_url, adwords.config)
@@ -63,11 +69,6 @@ def upload_image()
63
69
  end
64
70
 
65
71
  if __FILE__ == $0
66
- # To enable logging of SOAP requests, set the ADWORDSAPI_DEBUG environment
67
- # variable to 'true'. This can be done either from your operating system
68
- # environment or via code, as done below.
69
- ENV['ADWORDSAPI_DEBUG'] = 'false'
70
-
71
72
  begin
72
73
  upload_image()
73
74
 
data/lib/adwords_api.rb CHANGED
@@ -22,14 +22,16 @@
22
22
 
23
23
  require 'rubygems'
24
24
  gem 'soap4r', '=1.5.8'
25
- gem 'google-ads-common', '~>0.2.1'
25
+ gem 'google-ads-common', '~>0.4.0'
26
26
  require 'thread'
27
27
  require 'uri'
28
- require 'ads_common/logger'
29
28
  require 'ads_common/soap4r_patches'
30
29
  require 'ads_common/api'
31
30
  require 'ads_common/config'
32
31
  require 'ads_common/auth/client_login_handler'
32
+ require 'ads_common/soap4r_headers/nested_header_handler'
33
+ require 'ads_common/soap4r_headers/single_header_handler'
34
+ require 'ads_common/soap4r_logger'
33
35
  require 'adwords_api/auth/v13_login_handler'
34
36
  require 'adwords_api/errors'
35
37
  require 'adwords_api/api_config'
@@ -46,11 +48,6 @@ module AdwordsApi
46
48
  # Holds all the services, as well as login credentials.
47
49
  #
48
50
  class Api < AdsCommon::Api
49
-
50
- REQUEST_HEADER = 'RequestHeader'
51
- HEADER_NAMESPACE_PREAMBLE = 'https://adwords.google.com/api/adwords/cm/'
52
- LOGIN_SERVICE_NAME = 'adwords'
53
-
54
51
  # Mutex object for controlling concurrent access to API object data
55
52
  attr_reader :mutex
56
53
  # Number of units spent on the last operation via this API object
@@ -96,31 +93,23 @@ module AdwordsApi
96
93
  end
97
94
  return header_handlers
98
95
  else
99
- ns = HEADER_NAMESPACE_PREAMBLE + version.to_s
96
+ ns =
97
+ api_config.headers_config[:HEADER_NAMESPACE_PREAMBLE] + version.to_s
100
98
  top_ns = wrapper.namespace
101
99
  return [AdsCommon::Soap4rHeaders::NestedHeaderHandler.new(
102
- @credential_handler, auth_handler, REQUEST_HEADER, top_ns, ns,
103
- version)]
100
+ @credential_handler, auth_handler,
101
+ api_config.headers_config[:REQUEST_HEADER],
102
+ top_ns, ns, version)]
104
103
  end
105
104
  end
106
105
 
107
106
  # Constructor for Api.
108
107
  def initialize(provided_config = nil)
109
- load_config(provided_config)
108
+ super(provided_config)
110
109
  @credential_handler = AdwordsApi::CredentialHandler.new(@config)
111
- environment = config.read('service.environment').upcase.to_sym
112
- if !api_config.environments.include? environment
113
- raise AdsCommon::Errors::Error,
114
- "Unknown environment #{environment}"
115
- end
116
110
  @drivers = Hash.new
117
- @wrappers = Hash.new
118
111
  @total_units = 0
119
112
  @last_units = 0
120
- log_to_console = !ENV['ADWORDSAPI_DEBUG'].nil? &&
121
- ENV['ADWORDSAPI_DEBUG'].upcase == 'TRUE'
122
- @xml_logger = AdsCommon::Logger.new('soap_xml', log_to_console)
123
- @request_logger = AdsCommon::Logger.new('request_info')
124
113
  @mutex = Mutex.new
125
114
  end
126
115
 
@@ -240,7 +229,7 @@ module AdwordsApi
240
229
  # Returns:
241
230
  # - auth handler
242
231
  #
243
- def create_auth_handler(version, environment)
232
+ def create_auth_handler(environment, version)
244
233
  if version == :v13
245
234
  return AdwordsApi::Auth::V13LoginHandler.new
246
235
  else
@@ -248,22 +237,62 @@ module AdwordsApi
248
237
  auth_server = api_config.auth_server(environment)
249
238
  @client_login_handler =
250
239
  AdsCommon::Auth::ClientLoginHandler.new(config, auth_server,
251
- LOGIN_SERVICE_NAME)
240
+ api_config.headers_config[:LOGIN_SERVICE_NAME])
252
241
  end
253
242
  return @client_login_handler
254
243
  end
255
244
  end
256
245
 
257
- # Helper method to load the default configuration file or a given config.
246
+ # Handle loading of a single service.
247
+ # Creates the driver, sets up handlers and logger, declares the appropriate
248
+ # wrapper class and creates an instance of it.
258
249
  #
259
250
  # Args:
260
- # - provided_config: a configuration hash, if you wish to use a specific
261
- # configuration rather than use the default
251
+ # - version: intended API version. Must be a symbol.
252
+ # - service: name for the intended service
262
253
  #
263
- def load_config(provided_config = nil)
264
- @config = (provided_config.nil?) ?
265
- AdsCommon::Config.new(File.join(ENV['HOME'], 'adwords_api.yml')) :
266
- AdsCommon::Config.new(provided_config)
254
+ # Returns:
255
+ # - the simplified wrapper generated for the driver
256
+ #
257
+ def prepare_wrapper(version, service)
258
+ environment = config.read('service.environment')
259
+ api_config.do_require(version, service)
260
+ endpoint = api_config.endpoint(environment, version, service)
261
+ # Set endpoint if not using the default.
262
+ if endpoint.nil? then
263
+ driver = eval("#{api_config.interface_name(version, service)}.new")
264
+ else
265
+ endpoint_url = endpoint.to_s + service.to_s
266
+ driver = eval("#{api_config.interface_name(version, service)}.new" +
267
+ "(\"#{endpoint_url}\")")
268
+ end
269
+
270
+ # Create an instance of the wrapper class for this service.
271
+ wrapper_class = api_config.wrapper_name(version, service)
272
+ wrapper = eval("#{wrapper_class}.new(driver, self)")
273
+
274
+ auth_handler = create_auth_handler(environment, version)
275
+ header_list =
276
+ auth_handler.header_list(@credential_handler.credentials(version))
277
+
278
+ soap_handlers = soap_header_handlers(auth_handler, header_list, version,
279
+ wrapper)
280
+
281
+ soap_handlers.each do |handler|
282
+ driver.headerhandler << handler
283
+ end
284
+
285
+ # Add response handler to this driver for API unit usage processing.
286
+ driver.callbackhandler = create_callback_handler
287
+ # Plug the wiredump to our XML logger.
288
+ driver.wiredump_dev = AdsCommon::Soap4rLogger.new(@logger, Logger::DEBUG)
289
+ driver.options['protocol.http.ssl_config.verify_mode'] = nil
290
+ proxy = config.read('connection.proxy')
291
+ driver.options['protocol.http.proxy'] = proxy if proxy
292
+
293
+ @drivers[version] ||= {}
294
+ @drivers[version][service] = driver
295
+ return wrapper
267
296
  end
268
297
  end
269
298
  end