google-adwords-api 0.1.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 (527) hide show
  1. data/README +178 -0
  2. data/Rakefile +117 -0
  3. data/adwords_api.yml +21 -0
  4. data/examples/v200909/add_ad_extension_override.rb +91 -0
  5. data/examples/v200909/add_ad_group.rb +98 -0
  6. data/examples/v200909/add_ad_group_criteria.rb +117 -0
  7. data/examples/v200909/add_ads.rb +129 -0
  8. data/examples/v200909/add_campaign.rb +101 -0
  9. data/examples/v200909/add_campaign_ad_extension.rb +130 -0
  10. data/examples/v200909/add_negative_campaign_criterion.rb +96 -0
  11. data/examples/v200909/check_campaigns.rb +132 -0
  12. data/examples/v200909/delete_ad.rb +94 -0
  13. data/examples/v200909/delete_ad_group.rb +86 -0
  14. data/examples/v200909/delete_ad_group_criterion.rb +95 -0
  15. data/examples/v200909/delete_campaign.rb +87 -0
  16. data/examples/v200909/get_all_active_ad_group_criteria.rb +93 -0
  17. data/examples/v200909/get_all_ad_extension_overrides.rb +91 -0
  18. data/examples/v200909/get_all_ad_group_criteria.rb +91 -0
  19. data/examples/v200909/get_all_ad_groups.rb +88 -0
  20. data/examples/v200909/get_all_ad_params.rb +89 -0
  21. data/examples/v200909/get_all_ads.rb +88 -0
  22. data/examples/v200909/get_all_campaign_ad_extensions.rb +90 -0
  23. data/examples/v200909/get_all_campaign_targets.rb +83 -0
  24. data/examples/v200909/get_all_campaigns.rb +83 -0
  25. data/examples/v200909/get_all_disapproved_ads.rb +94 -0
  26. data/examples/v200909/get_all_paused_campaigns.rb +86 -0
  27. data/examples/v200909/get_conversion_optimizer_eligibility.rb +112 -0
  28. data/examples/v200909/get_geo_location_info.rb +108 -0
  29. data/examples/v200909/get_method_cost.rb +96 -0
  30. data/examples/v200909/get_operation_count.rb +88 -0
  31. data/examples/v200909/get_related_keywords.rb +115 -0
  32. data/examples/v200909/get_related_placements.rb +114 -0
  33. data/examples/v200909/get_total_usage_units_per_month.rb +83 -0
  34. data/examples/v200909/get_unit_count.rb +88 -0
  35. data/examples/v200909/perform_bulk_mutate_job.rb +221 -0
  36. data/examples/v200909/set_ad_params.rb +124 -0
  37. data/examples/v200909/set_campaign_targets.rb +125 -0
  38. data/examples/v200909/update_ad.rb +95 -0
  39. data/examples/v200909/update_ad_group.rb +90 -0
  40. data/examples/v200909/update_ad_group_criterion.rb +108 -0
  41. data/examples/v200909/update_campaign.rb +93 -0
  42. data/examples/v201003/add_ad_extension_override.rb +91 -0
  43. data/examples/v201003/add_ad_group.rb +98 -0
  44. data/examples/v201003/add_ad_group_criteria.rb +117 -0
  45. data/examples/v201003/add_ads.rb +182 -0
  46. data/examples/v201003/add_campaign.rb +101 -0
  47. data/examples/v201003/add_campaign_ad_extension.rb +130 -0
  48. data/examples/v201003/add_keywords_performance_report_definition.rb +108 -0
  49. data/examples/v201003/add_negative_campaign_criterion.rb +96 -0
  50. data/examples/v201003/check_campaigns.rb +132 -0
  51. data/examples/v201003/delete_ad.rb +94 -0
  52. data/examples/v201003/delete_ad_group.rb +86 -0
  53. data/examples/v201003/delete_ad_group_criterion.rb +95 -0
  54. data/examples/v201003/delete_campaign.rb +87 -0
  55. data/examples/v201003/download_report.rb +71 -0
  56. data/examples/v201003/get_all_active_ad_group_criteria.rb +93 -0
  57. data/examples/v201003/get_all_ad_extension_overrides.rb +91 -0
  58. data/examples/v201003/get_all_ad_group_criteria.rb +91 -0
  59. data/examples/v201003/get_all_ad_groups.rb +88 -0
  60. data/examples/v201003/get_all_ad_params.rb +89 -0
  61. data/examples/v201003/get_all_ads.rb +91 -0
  62. data/examples/v201003/get_all_campaign_ad_extensions.rb +90 -0
  63. data/examples/v201003/get_all_campaign_targets.rb +83 -0
  64. data/examples/v201003/get_all_campaigns.rb +83 -0
  65. data/examples/v201003/get_all_disapproved_ads.rb +94 -0
  66. data/examples/v201003/get_all_images.rb +88 -0
  67. data/examples/v201003/get_all_paused_campaigns.rb +86 -0
  68. data/examples/v201003/get_all_report_definitions.rb +84 -0
  69. data/examples/v201003/get_all_videos.rb +85 -0
  70. data/examples/v201003/get_conversion_optimizer_eligibility.rb +112 -0
  71. data/examples/v201003/get_criterion_bid_landscape.rb +105 -0
  72. data/examples/v201003/get_geo_location_info.rb +108 -0
  73. data/examples/v201003/get_method_cost.rb +96 -0
  74. data/examples/v201003/get_operation_count.rb +88 -0
  75. data/examples/v201003/get_related_keywords.rb +115 -0
  76. data/examples/v201003/get_related_placements.rb +114 -0
  77. data/examples/v201003/get_report_fields.rb +81 -0
  78. data/examples/v201003/get_total_usage_units_per_month.rb +83 -0
  79. data/examples/v201003/get_unit_count.rb +88 -0
  80. data/examples/v201003/perform_bulk_mutate_job.rb +221 -0
  81. data/examples/v201003/set_ad_params.rb +124 -0
  82. data/examples/v201003/set_campaign_targets.rb +125 -0
  83. data/examples/v201003/update_ad.rb +95 -0
  84. data/examples/v201003/update_ad_group.rb +90 -0
  85. data/examples/v201003/update_ad_group_criterion.rb +108 -0
  86. data/examples/v201003/update_campaign.rb +92 -0
  87. data/examples/v201003/upload_image.rb +97 -0
  88. data/examples/v201008/add_ad_extension_override.rb +91 -0
  89. data/examples/v201008/add_ad_group.rb +98 -0
  90. data/examples/v201008/add_ad_group_criteria.rb +117 -0
  91. data/examples/v201008/add_ads.rb +182 -0
  92. data/examples/v201008/add_campaign.rb +101 -0
  93. data/examples/v201008/add_campaign_ad_extension.rb +130 -0
  94. data/examples/v201008/add_experiment.rb +162 -0
  95. data/examples/v201008/add_keywords_performance_report_definition.rb +108 -0
  96. data/examples/v201008/add_negative_campaign_criterion.rb +96 -0
  97. data/examples/v201008/add_user_list.rb +96 -0
  98. data/examples/v201008/check_campaigns.rb +132 -0
  99. data/examples/v201008/delete_ad.rb +94 -0
  100. data/examples/v201008/delete_ad_group.rb +86 -0
  101. data/examples/v201008/delete_ad_group_criterion.rb +95 -0
  102. data/examples/v201008/delete_bulk_mutate_job.rb +96 -0
  103. data/examples/v201008/delete_campaign.rb +87 -0
  104. data/examples/v201008/delete_experiment.rb +87 -0
  105. data/examples/v201008/delete_user_list.rb +87 -0
  106. data/examples/v201008/download_report.rb +71 -0
  107. data/examples/v201008/get_account_hierarchy.rb +112 -0
  108. data/examples/v201008/get_all_account_changes.rb +144 -0
  109. data/examples/v201008/get_all_active_ad_group_criteria.rb +93 -0
  110. data/examples/v201008/get_all_ad_extension_overrides.rb +91 -0
  111. data/examples/v201008/get_all_ad_group_criteria.rb +91 -0
  112. data/examples/v201008/get_all_ad_groups.rb +88 -0
  113. data/examples/v201008/get_all_ad_params.rb +89 -0
  114. data/examples/v201008/get_all_ads.rb +91 -0
  115. data/examples/v201008/get_all_campaign_ad_extensions.rb +90 -0
  116. data/examples/v201008/get_all_campaign_targets.rb +83 -0
  117. data/examples/v201008/get_all_campaigns.rb +83 -0
  118. data/examples/v201008/get_all_disapproved_ads.rb +94 -0
  119. data/examples/v201008/get_all_experiments.rb +93 -0
  120. data/examples/v201008/get_all_images.rb +88 -0
  121. data/examples/v201008/get_all_paused_campaigns.rb +86 -0
  122. data/examples/v201008/get_all_report_definitions.rb +84 -0
  123. data/examples/v201008/get_all_user_lists.rb +84 -0
  124. data/examples/v201008/get_all_videos.rb +85 -0
  125. data/examples/v201008/get_bulk_mutate_job.rb +106 -0
  126. data/examples/v201008/get_campaign_alerts.rb +103 -0
  127. data/examples/v201008/get_conversion_optimizer_eligibility.rb +97 -0
  128. data/examples/v201008/get_criterion_bid_landscape.rb +105 -0
  129. data/examples/v201008/get_geo_location_info.rb +108 -0
  130. data/examples/v201008/get_method_cost.rb +96 -0
  131. data/examples/v201008/get_operation_count.rb +88 -0
  132. data/examples/v201008/get_related_keywords.rb +115 -0
  133. data/examples/v201008/get_related_placements.rb +114 -0
  134. data/examples/v201008/get_report_fields.rb +81 -0
  135. data/examples/v201008/get_total_usage_units_per_month.rb +83 -0
  136. data/examples/v201008/get_traffic_estimates.rb +156 -0
  137. data/examples/v201008/get_unit_count.rb +88 -0
  138. data/examples/v201008/handle_partial_failures.rb +135 -0
  139. data/examples/v201008/handle_policy_violation_error.rb +146 -0
  140. data/examples/v201008/perform_bulk_mutate_job.rb +221 -0
  141. data/examples/v201008/promote_experiment.rb +88 -0
  142. data/examples/v201008/set_ad_params.rb +124 -0
  143. data/examples/v201008/set_campaign_targets.rb +125 -0
  144. data/examples/v201008/update_ad.rb +95 -0
  145. data/examples/v201008/update_ad_group.rb +90 -0
  146. data/examples/v201008/update_ad_group_criterion.rb +108 -0
  147. data/examples/v201008/update_campaign.rb +93 -0
  148. data/examples/v201008/update_user_list.rb +91 -0
  149. data/examples/v201008/upload_image.rb +97 -0
  150. data/examples/v201101/add_ad_extension_override.rb +91 -0
  151. data/examples/v201101/add_ad_group.rb +98 -0
  152. data/examples/v201101/add_ad_group_criteria.rb +117 -0
  153. data/examples/v201101/add_ads.rb +182 -0
  154. data/examples/v201101/add_campaign.rb +108 -0
  155. data/examples/v201101/add_campaign_ad_extension.rb +130 -0
  156. data/examples/v201101/add_experiment.rb +162 -0
  157. data/examples/v201101/add_keywords_performance_report_definition.rb +108 -0
  158. data/examples/v201101/add_mcc_report_definition.rb +103 -0
  159. data/examples/v201101/add_negative_campaign_criterion.rb +96 -0
  160. data/examples/v201101/add_user_list.rb +96 -0
  161. data/examples/v201101/check_campaigns.rb +132 -0
  162. data/examples/v201101/delete_ad.rb +94 -0
  163. data/examples/v201101/delete_ad_group.rb +86 -0
  164. data/examples/v201101/delete_ad_group_criterion.rb +95 -0
  165. data/examples/v201101/delete_bulk_mutate_job.rb +96 -0
  166. data/examples/v201101/delete_campaign.rb +87 -0
  167. data/examples/v201101/delete_experiment.rb +87 -0
  168. data/examples/v201101/delete_user_list.rb +87 -0
  169. data/examples/v201101/download_mcc_report.rb +93 -0
  170. data/examples/v201101/download_report.rb +71 -0
  171. data/examples/v201101/get_account_hierarchy.rb +112 -0
  172. data/examples/v201101/get_ad_group_bid_landscape.rb +103 -0
  173. data/examples/v201101/get_all_account_changes.rb +146 -0
  174. data/examples/v201101/get_all_active_ad_group_criteria.rb +106 -0
  175. data/examples/v201101/get_all_ad_extension_overrides.rb +91 -0
  176. data/examples/v201101/get_all_ad_group_criteria.rb +97 -0
  177. data/examples/v201101/get_all_ad_groups.rb +94 -0
  178. data/examples/v201101/get_all_ad_params.rb +89 -0
  179. data/examples/v201101/get_all_ads.rb +99 -0
  180. data/examples/v201101/get_all_campaign_ad_extensions.rb +96 -0
  181. data/examples/v201101/get_all_campaign_targets.rb +83 -0
  182. data/examples/v201101/get_all_campaigns.rb +86 -0
  183. data/examples/v201101/get_all_disapproved_ads.rb +102 -0
  184. data/examples/v201101/get_all_experiments.rb +98 -0
  185. data/examples/v201101/get_all_images.rb +90 -0
  186. data/examples/v201101/get_all_paused_campaigns.rb +92 -0
  187. data/examples/v201101/get_all_report_definitions.rb +84 -0
  188. data/examples/v201101/get_all_user_lists.rb +87 -0
  189. data/examples/v201101/get_all_videos.rb +87 -0
  190. data/examples/v201101/get_bulk_mutate_job.rb +106 -0
  191. data/examples/v201101/get_campaign_alerts.rb +103 -0
  192. data/examples/v201101/get_conversion_optimizer_eligibility.rb +102 -0
  193. data/examples/v201101/get_criterion_bid_landscape.rb +102 -0
  194. data/examples/v201101/get_geo_location_info.rb +108 -0
  195. data/examples/v201101/get_method_cost.rb +96 -0
  196. data/examples/v201101/get_operation_count.rb +88 -0
  197. data/examples/v201101/get_related_keywords.rb +115 -0
  198. data/examples/v201101/get_related_placements.rb +114 -0
  199. data/examples/v201101/get_report_fields.rb +81 -0
  200. data/examples/v201101/get_total_usage_units_per_month.rb +83 -0
  201. data/examples/v201101/get_traffic_estimates.rb +157 -0
  202. data/examples/v201101/get_unit_count.rb +88 -0
  203. data/examples/v201101/handle_partial_failures.rb +135 -0
  204. data/examples/v201101/handle_policy_violation_error.rb +146 -0
  205. data/examples/v201101/perform_bulk_mutate_job.rb +221 -0
  206. data/examples/v201101/promote_experiment.rb +88 -0
  207. data/examples/v201101/set_ad_params.rb +124 -0
  208. data/examples/v201101/set_campaign_targets.rb +111 -0
  209. data/examples/v201101/update_ad.rb +95 -0
  210. data/examples/v201101/update_ad_group.rb +90 -0
  211. data/examples/v201101/update_ad_group_criterion.rb +108 -0
  212. data/examples/v201101/update_campaign.rb +93 -0
  213. data/examples/v201101/update_user_list.rb +91 -0
  214. data/examples/v201101/upload_image.rb +97 -0
  215. data/lib/adwords_api.rb +273 -0
  216. data/lib/adwords_api/api_config.rb +270 -0
  217. data/lib/adwords_api/auth/v13_login_handler.rb +36 -0
  218. data/lib/adwords_api/credential_handler.rb +111 -0
  219. data/lib/adwords_api/errors.rb +85 -0
  220. data/lib/adwords_api/extensions.rb +245 -0
  221. data/lib/adwords_api/soap4r_response_handler.rb +121 -0
  222. data/lib/adwords_api/utils.rb +80 -0
  223. data/lib/adwords_api/v13/AccountService.rb +321 -0
  224. data/lib/adwords_api/v13/AccountServiceDriver.rb +87 -0
  225. data/lib/adwords_api/v13/AccountServiceMappingRegistry.rb +337 -0
  226. data/lib/adwords_api/v13/AccountServiceWrapper.rb +407 -0
  227. data/lib/adwords_api/v13/ReportService.rb +328 -0
  228. data/lib/adwords_api/v13/ReportServiceDriver.rb +103 -0
  229. data/lib/adwords_api/v13/ReportServiceMappingRegistry.rb +298 -0
  230. data/lib/adwords_api/v13/ReportServiceWrapper.rb +500 -0
  231. data/lib/adwords_api/v13/TrafficEstimatorService.rb +414 -0
  232. data/lib/adwords_api/v13/TrafficEstimatorServiceDriver.rb +79 -0
  233. data/lib/adwords_api/v13/TrafficEstimatorServiceMappingRegistry.rb +491 -0
  234. data/lib/adwords_api/v13/TrafficEstimatorServiceWrapper.rb +402 -0
  235. data/lib/adwords_api/v200909/AdExtensionOverrideService.rb +1105 -0
  236. data/lib/adwords_api/v200909/AdExtensionOverrideServiceDriver.rb +63 -0
  237. data/lib/adwords_api/v200909/AdExtensionOverrideServiceMappingRegistry.rb +1265 -0
  238. data/lib/adwords_api/v200909/AdExtensionOverrideServiceWrapper.rb +332 -0
  239. data/lib/adwords_api/v200909/AdGroupAdService.rb +2603 -0
  240. data/lib/adwords_api/v200909/AdGroupAdServiceDriver.rb +63 -0
  241. data/lib/adwords_api/v200909/AdGroupAdServiceMappingRegistry.rb +2755 -0
  242. data/lib/adwords_api/v200909/AdGroupAdServiceWrapper.rb +332 -0
  243. data/lib/adwords_api/v200909/AdGroupCriterionService.rb +1577 -0
  244. data/lib/adwords_api/v200909/AdGroupCriterionServiceDriver.rb +63 -0
  245. data/lib/adwords_api/v200909/AdGroupCriterionServiceMappingRegistry.rb +1821 -0
  246. data/lib/adwords_api/v200909/AdGroupCriterionServiceWrapper.rb +332 -0
  247. data/lib/adwords_api/v200909/AdGroupService.rb +1251 -0
  248. data/lib/adwords_api/v200909/AdGroupServiceDriver.rb +63 -0
  249. data/lib/adwords_api/v200909/AdGroupServiceMappingRegistry.rb +1395 -0
  250. data/lib/adwords_api/v200909/AdGroupServiceWrapper.rb +332 -0
  251. data/lib/adwords_api/v200909/AdParamService.rb +765 -0
  252. data/lib/adwords_api/v200909/AdParamServiceDriver.rb +63 -0
  253. data/lib/adwords_api/v200909/AdParamServiceMappingRegistry.rb +927 -0
  254. data/lib/adwords_api/v200909/AdParamServiceWrapper.rb +332 -0
  255. data/lib/adwords_api/v200909/BulkMutateJobService.rb +4778 -0
  256. data/lib/adwords_api/v200909/BulkMutateJobServiceDriver.rb +63 -0
  257. data/lib/adwords_api/v200909/BulkMutateJobServiceMappingRegistry.rb +5077 -0
  258. data/lib/adwords_api/v200909/BulkMutateJobServiceWrapper.rb +332 -0
  259. data/lib/adwords_api/v200909/CampaignAdExtensionService.rb +1065 -0
  260. data/lib/adwords_api/v200909/CampaignAdExtensionServiceDriver.rb +63 -0
  261. data/lib/adwords_api/v200909/CampaignAdExtensionServiceMappingRegistry.rb +1273 -0
  262. data/lib/adwords_api/v200909/CampaignAdExtensionServiceWrapper.rb +332 -0
  263. data/lib/adwords_api/v200909/CampaignCriterionService.rb +1019 -0
  264. data/lib/adwords_api/v200909/CampaignCriterionServiceDriver.rb +63 -0
  265. data/lib/adwords_api/v200909/CampaignCriterionServiceMappingRegistry.rb +1237 -0
  266. data/lib/adwords_api/v200909/CampaignCriterionServiceWrapper.rb +332 -0
  267. data/lib/adwords_api/v200909/CampaignService.rb +1633 -0
  268. data/lib/adwords_api/v200909/CampaignServiceDriver.rb +63 -0
  269. data/lib/adwords_api/v200909/CampaignServiceMappingRegistry.rb +1785 -0
  270. data/lib/adwords_api/v200909/CampaignServiceWrapper.rb +332 -0
  271. data/lib/adwords_api/v200909/CampaignTargetService.rb +1435 -0
  272. data/lib/adwords_api/v200909/CampaignTargetServiceDriver.rb +63 -0
  273. data/lib/adwords_api/v200909/CampaignTargetServiceMappingRegistry.rb +1569 -0
  274. data/lib/adwords_api/v200909/CampaignTargetServiceWrapper.rb +332 -0
  275. data/lib/adwords_api/v200909/GeoLocationService.rb +611 -0
  276. data/lib/adwords_api/v200909/GeoLocationServiceDriver.rb +55 -0
  277. data/lib/adwords_api/v200909/GeoLocationServiceMappingRegistry.rb +771 -0
  278. data/lib/adwords_api/v200909/GeoLocationServiceWrapper.rb +303 -0
  279. data/lib/adwords_api/v200909/InfoService.rb +605 -0
  280. data/lib/adwords_api/v200909/InfoServiceDriver.rb +55 -0
  281. data/lib/adwords_api/v200909/InfoServiceMappingRegistry.rb +764 -0
  282. data/lib/adwords_api/v200909/InfoServiceWrapper.rb +303 -0
  283. data/lib/adwords_api/v200909/TargetingIdeaService.rb +2253 -0
  284. data/lib/adwords_api/v200909/TargetingIdeaServiceDriver.rb +63 -0
  285. data/lib/adwords_api/v200909/TargetingIdeaServiceMappingRegistry.rb +2688 -0
  286. data/lib/adwords_api/v200909/TargetingIdeaServiceWrapper.rb +335 -0
  287. data/lib/adwords_api/v201003/AdExtensionOverrideService.rb +1301 -0
  288. data/lib/adwords_api/v201003/AdExtensionOverrideServiceDriver.rb +63 -0
  289. data/lib/adwords_api/v201003/AdExtensionOverrideServiceMappingRegistry.rb +1468 -0
  290. data/lib/adwords_api/v201003/AdExtensionOverrideServiceWrapper.rb +332 -0
  291. data/lib/adwords_api/v201003/AdGroupAdService.rb +2909 -0
  292. data/lib/adwords_api/v201003/AdGroupAdServiceDriver.rb +63 -0
  293. data/lib/adwords_api/v201003/AdGroupAdServiceMappingRegistry.rb +2970 -0
  294. data/lib/adwords_api/v201003/AdGroupAdServiceWrapper.rb +332 -0
  295. data/lib/adwords_api/v201003/AdGroupCriterionService.rb +1762 -0
  296. data/lib/adwords_api/v201003/AdGroupCriterionServiceDriver.rb +63 -0
  297. data/lib/adwords_api/v201003/AdGroupCriterionServiceMappingRegistry.rb +1978 -0
  298. data/lib/adwords_api/v201003/AdGroupCriterionServiceWrapper.rb +332 -0
  299. data/lib/adwords_api/v201003/AdGroupService.rb +1421 -0
  300. data/lib/adwords_api/v201003/AdGroupServiceDriver.rb +63 -0
  301. data/lib/adwords_api/v201003/AdGroupServiceMappingRegistry.rb +1546 -0
  302. data/lib/adwords_api/v201003/AdGroupServiceWrapper.rb +332 -0
  303. data/lib/adwords_api/v201003/AdParamService.rb +859 -0
  304. data/lib/adwords_api/v201003/AdParamServiceDriver.rb +63 -0
  305. data/lib/adwords_api/v201003/AdParamServiceMappingRegistry.rb +1002 -0
  306. data/lib/adwords_api/v201003/AdParamServiceWrapper.rb +332 -0
  307. data/lib/adwords_api/v201003/BidLandscapeService.rb +847 -0
  308. data/lib/adwords_api/v201003/BidLandscapeServiceDriver.rb +55 -0
  309. data/lib/adwords_api/v201003/BidLandscapeServiceMappingRegistry.rb +958 -0
  310. data/lib/adwords_api/v201003/BidLandscapeServiceWrapper.rb +306 -0
  311. data/lib/adwords_api/v201003/BulkMutateJobService.rb +5401 -0
  312. data/lib/adwords_api/v201003/BulkMutateJobServiceDriver.rb +63 -0
  313. data/lib/adwords_api/v201003/BulkMutateJobServiceMappingRegistry.rb +5600 -0
  314. data/lib/adwords_api/v201003/BulkMutateJobServiceWrapper.rb +332 -0
  315. data/lib/adwords_api/v201003/CampaignAdExtensionService.rb +1255 -0
  316. data/lib/adwords_api/v201003/CampaignAdExtensionServiceDriver.rb +63 -0
  317. data/lib/adwords_api/v201003/CampaignAdExtensionServiceMappingRegistry.rb +1452 -0
  318. data/lib/adwords_api/v201003/CampaignAdExtensionServiceWrapper.rb +332 -0
  319. data/lib/adwords_api/v201003/CampaignCriterionService.rb +1145 -0
  320. data/lib/adwords_api/v201003/CampaignCriterionServiceDriver.rb +63 -0
  321. data/lib/adwords_api/v201003/CampaignCriterionServiceMappingRegistry.rb +1344 -0
  322. data/lib/adwords_api/v201003/CampaignCriterionServiceWrapper.rb +332 -0
  323. data/lib/adwords_api/v201003/CampaignService.rb +1901 -0
  324. data/lib/adwords_api/v201003/CampaignServiceDriver.rb +63 -0
  325. data/lib/adwords_api/v201003/CampaignServiceMappingRegistry.rb +2010 -0
  326. data/lib/adwords_api/v201003/CampaignServiceWrapper.rb +332 -0
  327. data/lib/adwords_api/v201003/CampaignTargetService.rb +1642 -0
  328. data/lib/adwords_api/v201003/CampaignTargetServiceDriver.rb +63 -0
  329. data/lib/adwords_api/v201003/CampaignTargetServiceMappingRegistry.rb +1754 -0
  330. data/lib/adwords_api/v201003/CampaignTargetServiceWrapper.rb +332 -0
  331. data/lib/adwords_api/v201003/GeoLocationService.rb +692 -0
  332. data/lib/adwords_api/v201003/GeoLocationServiceDriver.rb +55 -0
  333. data/lib/adwords_api/v201003/GeoLocationServiceMappingRegistry.rb +840 -0
  334. data/lib/adwords_api/v201003/GeoLocationServiceWrapper.rb +303 -0
  335. data/lib/adwords_api/v201003/InfoService.rb +687 -0
  336. data/lib/adwords_api/v201003/InfoServiceDriver.rb +55 -0
  337. data/lib/adwords_api/v201003/InfoServiceMappingRegistry.rb +833 -0
  338. data/lib/adwords_api/v201003/InfoServiceWrapper.rb +303 -0
  339. data/lib/adwords_api/v201003/MediaService.rb +1192 -0
  340. data/lib/adwords_api/v201003/MediaServiceDriver.rb +63 -0
  341. data/lib/adwords_api/v201003/MediaServiceMappingRegistry.rb +1290 -0
  342. data/lib/adwords_api/v201003/MediaServiceWrapper.rb +332 -0
  343. data/lib/adwords_api/v201003/ReportDefinitionService.rb +905 -0
  344. data/lib/adwords_api/v201003/ReportDefinitionServiceDriver.rb +71 -0
  345. data/lib/adwords_api/v201003/ReportDefinitionServiceMappingRegistry.rb +1036 -0
  346. data/lib/adwords_api/v201003/ReportDefinitionServiceWrapper.rb +378 -0
  347. data/lib/adwords_api/v201003/TargetingIdeaService.rb +2517 -0
  348. data/lib/adwords_api/v201003/TargetingIdeaServiceDriver.rb +63 -0
  349. data/lib/adwords_api/v201003/TargetingIdeaServiceMappingRegistry.rb +2925 -0
  350. data/lib/adwords_api/v201003/TargetingIdeaServiceWrapper.rb +335 -0
  351. data/lib/adwords_api/v201008/AdExtensionOverrideService.rb +1383 -0
  352. data/lib/adwords_api/v201008/AdExtensionOverrideServiceDriver.rb +63 -0
  353. data/lib/adwords_api/v201008/AdExtensionOverrideServiceMappingRegistry.rb +1563 -0
  354. data/lib/adwords_api/v201008/AdExtensionOverrideServiceWrapper.rb +332 -0
  355. data/lib/adwords_api/v201008/AdGroupAdService.rb +2928 -0
  356. data/lib/adwords_api/v201008/AdGroupAdServiceDriver.rb +63 -0
  357. data/lib/adwords_api/v201008/AdGroupAdServiceMappingRegistry.rb +2969 -0
  358. data/lib/adwords_api/v201008/AdGroupAdServiceWrapper.rb +332 -0
  359. data/lib/adwords_api/v201008/AdGroupCriterionService.rb +1981 -0
  360. data/lib/adwords_api/v201008/AdGroupCriterionServiceDriver.rb +63 -0
  361. data/lib/adwords_api/v201008/AdGroupCriterionServiceMappingRegistry.rb +2229 -0
  362. data/lib/adwords_api/v201008/AdGroupCriterionServiceWrapper.rb +332 -0
  363. data/lib/adwords_api/v201008/AdGroupService.rb +1548 -0
  364. data/lib/adwords_api/v201008/AdGroupServiceDriver.rb +63 -0
  365. data/lib/adwords_api/v201008/AdGroupServiceMappingRegistry.rb +1687 -0
  366. data/lib/adwords_api/v201008/AdGroupServiceWrapper.rb +332 -0
  367. data/lib/adwords_api/v201008/AdParamService.rb +889 -0
  368. data/lib/adwords_api/v201008/AdParamServiceDriver.rb +63 -0
  369. data/lib/adwords_api/v201008/AdParamServiceMappingRegistry.rb +1041 -0
  370. data/lib/adwords_api/v201008/AdParamServiceWrapper.rb +332 -0
  371. data/lib/adwords_api/v201008/AlertService.rb +743 -0
  372. data/lib/adwords_api/v201008/AlertServiceDriver.rb +55 -0
  373. data/lib/adwords_api/v201008/AlertServiceMappingRegistry.rb +836 -0
  374. data/lib/adwords_api/v201008/AlertServiceWrapper.rb +303 -0
  375. data/lib/adwords_api/v201008/BidLandscapeService.rb +928 -0
  376. data/lib/adwords_api/v201008/BidLandscapeServiceDriver.rb +55 -0
  377. data/lib/adwords_api/v201008/BidLandscapeServiceMappingRegistry.rb +1059 -0
  378. data/lib/adwords_api/v201008/BidLandscapeServiceWrapper.rb +306 -0
  379. data/lib/adwords_api/v201008/BulkMutateJobService.rb +6063 -0
  380. data/lib/adwords_api/v201008/BulkMutateJobServiceDriver.rb +63 -0
  381. data/lib/adwords_api/v201008/BulkMutateJobServiceMappingRegistry.rb +6265 -0
  382. data/lib/adwords_api/v201008/BulkMutateJobServiceWrapper.rb +332 -0
  383. data/lib/adwords_api/v201008/CampaignAdExtensionService.rb +1594 -0
  384. data/lib/adwords_api/v201008/CampaignAdExtensionServiceDriver.rb +63 -0
  385. data/lib/adwords_api/v201008/CampaignAdExtensionServiceMappingRegistry.rb +1789 -0
  386. data/lib/adwords_api/v201008/CampaignAdExtensionServiceWrapper.rb +332 -0
  387. data/lib/adwords_api/v201008/CampaignCriterionService.rb +1243 -0
  388. data/lib/adwords_api/v201008/CampaignCriterionServiceDriver.rb +63 -0
  389. data/lib/adwords_api/v201008/CampaignCriterionServiceMappingRegistry.rb +1467 -0
  390. data/lib/adwords_api/v201008/CampaignCriterionServiceWrapper.rb +332 -0
  391. data/lib/adwords_api/v201008/CampaignService.rb +1979 -0
  392. data/lib/adwords_api/v201008/CampaignServiceDriver.rb +63 -0
  393. data/lib/adwords_api/v201008/CampaignServiceMappingRegistry.rb +2089 -0
  394. data/lib/adwords_api/v201008/CampaignServiceWrapper.rb +332 -0
  395. data/lib/adwords_api/v201008/CampaignTargetService.rb +1651 -0
  396. data/lib/adwords_api/v201008/CampaignTargetServiceDriver.rb +63 -0
  397. data/lib/adwords_api/v201008/CampaignTargetServiceMappingRegistry.rb +1757 -0
  398. data/lib/adwords_api/v201008/CampaignTargetServiceWrapper.rb +332 -0
  399. data/lib/adwords_api/v201008/CustomerSyncService.rb +693 -0
  400. data/lib/adwords_api/v201008/CustomerSyncServiceDriver.rb +55 -0
  401. data/lib/adwords_api/v201008/CustomerSyncServiceMappingRegistry.rb +820 -0
  402. data/lib/adwords_api/v201008/CustomerSyncServiceWrapper.rb +303 -0
  403. data/lib/adwords_api/v201008/ExperimentService.rb +1124 -0
  404. data/lib/adwords_api/v201008/ExperimentServiceDriver.rb +63 -0
  405. data/lib/adwords_api/v201008/ExperimentServiceMappingRegistry.rb +1281 -0
  406. data/lib/adwords_api/v201008/ExperimentServiceWrapper.rb +332 -0
  407. data/lib/adwords_api/v201008/GeoLocationService.rb +695 -0
  408. data/lib/adwords_api/v201008/GeoLocationServiceDriver.rb +55 -0
  409. data/lib/adwords_api/v201008/GeoLocationServiceMappingRegistry.rb +843 -0
  410. data/lib/adwords_api/v201008/GeoLocationServiceWrapper.rb +303 -0
  411. data/lib/adwords_api/v201008/InfoService.rb +690 -0
  412. data/lib/adwords_api/v201008/InfoServiceDriver.rb +55 -0
  413. data/lib/adwords_api/v201008/InfoServiceMappingRegistry.rb +836 -0
  414. data/lib/adwords_api/v201008/InfoServiceWrapper.rb +303 -0
  415. data/lib/adwords_api/v201008/MediaService.rb +1144 -0
  416. data/lib/adwords_api/v201008/MediaServiceDriver.rb +63 -0
  417. data/lib/adwords_api/v201008/MediaServiceMappingRegistry.rb +1241 -0
  418. data/lib/adwords_api/v201008/MediaServiceWrapper.rb +332 -0
  419. data/lib/adwords_api/v201008/ReportDefinitionService.rb +976 -0
  420. data/lib/adwords_api/v201008/ReportDefinitionServiceDriver.rb +71 -0
  421. data/lib/adwords_api/v201008/ReportDefinitionServiceMappingRegistry.rb +1115 -0
  422. data/lib/adwords_api/v201008/ReportDefinitionServiceWrapper.rb +378 -0
  423. data/lib/adwords_api/v201008/ServicedAccountService.rb +630 -0
  424. data/lib/adwords_api/v201008/ServicedAccountServiceDriver.rb +55 -0
  425. data/lib/adwords_api/v201008/ServicedAccountServiceMappingRegistry.rb +752 -0
  426. data/lib/adwords_api/v201008/ServicedAccountServiceWrapper.rb +303 -0
  427. data/lib/adwords_api/v201008/TargetingIdeaService.rb +2645 -0
  428. data/lib/adwords_api/v201008/TargetingIdeaServiceDriver.rb +63 -0
  429. data/lib/adwords_api/v201008/TargetingIdeaServiceMappingRegistry.rb +3080 -0
  430. data/lib/adwords_api/v201008/TargetingIdeaServiceWrapper.rb +335 -0
  431. data/lib/adwords_api/v201008/TrafficEstimatorService.rb +1833 -0
  432. data/lib/adwords_api/v201008/TrafficEstimatorServiceDriver.rb +55 -0
  433. data/lib/adwords_api/v201008/TrafficEstimatorServiceMappingRegistry.rb +2124 -0
  434. data/lib/adwords_api/v201008/TrafficEstimatorServiceWrapper.rb +303 -0
  435. data/lib/adwords_api/v201008/UserListService.rb +846 -0
  436. data/lib/adwords_api/v201008/UserListServiceDriver.rb +63 -0
  437. data/lib/adwords_api/v201008/UserListServiceMappingRegistry.rb +915 -0
  438. data/lib/adwords_api/v201008/UserListServiceWrapper.rb +332 -0
  439. data/lib/adwords_api/v201101/AdExtensionOverrideService.rb +1399 -0
  440. data/lib/adwords_api/v201101/AdExtensionOverrideServiceDriver.rb +63 -0
  441. data/lib/adwords_api/v201101/AdExtensionOverrideServiceMappingRegistry.rb +1573 -0
  442. data/lib/adwords_api/v201101/AdExtensionOverrideServiceWrapper.rb +332 -0
  443. data/lib/adwords_api/v201101/AdGroupAdService.rb +2585 -0
  444. data/lib/adwords_api/v201101/AdGroupAdServiceDriver.rb +63 -0
  445. data/lib/adwords_api/v201101/AdGroupAdServiceMappingRegistry.rb +2583 -0
  446. data/lib/adwords_api/v201101/AdGroupAdServiceWrapper.rb +332 -0
  447. data/lib/adwords_api/v201101/AdGroupCriterionService.rb +2099 -0
  448. data/lib/adwords_api/v201101/AdGroupCriterionServiceDriver.rb +63 -0
  449. data/lib/adwords_api/v201101/AdGroupCriterionServiceMappingRegistry.rb +2327 -0
  450. data/lib/adwords_api/v201101/AdGroupCriterionServiceWrapper.rb +332 -0
  451. data/lib/adwords_api/v201101/AdGroupService.rb +1610 -0
  452. data/lib/adwords_api/v201101/AdGroupServiceDriver.rb +63 -0
  453. data/lib/adwords_api/v201101/AdGroupServiceMappingRegistry.rb +1765 -0
  454. data/lib/adwords_api/v201101/AdGroupServiceWrapper.rb +332 -0
  455. data/lib/adwords_api/v201101/AdParamService.rb +922 -0
  456. data/lib/adwords_api/v201101/AdParamServiceDriver.rb +63 -0
  457. data/lib/adwords_api/v201101/AdParamServiceMappingRegistry.rb +1077 -0
  458. data/lib/adwords_api/v201101/AdParamServiceWrapper.rb +332 -0
  459. data/lib/adwords_api/v201101/AlertService.rb +747 -0
  460. data/lib/adwords_api/v201101/AlertServiceDriver.rb +55 -0
  461. data/lib/adwords_api/v201101/AlertServiceMappingRegistry.rb +838 -0
  462. data/lib/adwords_api/v201101/AlertServiceWrapper.rb +303 -0
  463. data/lib/adwords_api/v201101/BulkMutateJobService.rb +6208 -0
  464. data/lib/adwords_api/v201101/BulkMutateJobServiceDriver.rb +63 -0
  465. data/lib/adwords_api/v201101/BulkMutateJobServiceMappingRegistry.rb +6433 -0
  466. data/lib/adwords_api/v201101/BulkMutateJobServiceWrapper.rb +332 -0
  467. data/lib/adwords_api/v201101/CampaignAdExtensionService.rb +1677 -0
  468. data/lib/adwords_api/v201101/CampaignAdExtensionServiceDriver.rb +63 -0
  469. data/lib/adwords_api/v201101/CampaignAdExtensionServiceMappingRegistry.rb +1855 -0
  470. data/lib/adwords_api/v201101/CampaignAdExtensionServiceWrapper.rb +332 -0
  471. data/lib/adwords_api/v201101/CampaignCriterionService.rb +1388 -0
  472. data/lib/adwords_api/v201101/CampaignCriterionServiceDriver.rb +63 -0
  473. data/lib/adwords_api/v201101/CampaignCriterionServiceMappingRegistry.rb +1601 -0
  474. data/lib/adwords_api/v201101/CampaignCriterionServiceWrapper.rb +332 -0
  475. data/lib/adwords_api/v201101/CampaignService.rb +2188 -0
  476. data/lib/adwords_api/v201101/CampaignServiceDriver.rb +63 -0
  477. data/lib/adwords_api/v201101/CampaignServiceMappingRegistry.rb +2301 -0
  478. data/lib/adwords_api/v201101/CampaignServiceWrapper.rb +332 -0
  479. data/lib/adwords_api/v201101/CampaignTargetService.rb +1629 -0
  480. data/lib/adwords_api/v201101/CampaignTargetServiceDriver.rb +63 -0
  481. data/lib/adwords_api/v201101/CampaignTargetServiceMappingRegistry.rb +1725 -0
  482. data/lib/adwords_api/v201101/CampaignTargetServiceWrapper.rb +332 -0
  483. data/lib/adwords_api/v201101/CustomerSyncService.rb +694 -0
  484. data/lib/adwords_api/v201101/CustomerSyncServiceDriver.rb +55 -0
  485. data/lib/adwords_api/v201101/CustomerSyncServiceMappingRegistry.rb +820 -0
  486. data/lib/adwords_api/v201101/CustomerSyncServiceWrapper.rb +303 -0
  487. data/lib/adwords_api/v201101/DataService.rb +1079 -0
  488. data/lib/adwords_api/v201101/DataServiceDriver.rb +63 -0
  489. data/lib/adwords_api/v201101/DataServiceMappingRegistry.rb +1177 -0
  490. data/lib/adwords_api/v201101/DataServiceWrapper.rb +338 -0
  491. data/lib/adwords_api/v201101/ExperimentService.rb +1256 -0
  492. data/lib/adwords_api/v201101/ExperimentServiceDriver.rb +63 -0
  493. data/lib/adwords_api/v201101/ExperimentServiceMappingRegistry.rb +1417 -0
  494. data/lib/adwords_api/v201101/ExperimentServiceWrapper.rb +332 -0
  495. data/lib/adwords_api/v201101/GeoLocationService.rb +695 -0
  496. data/lib/adwords_api/v201101/GeoLocationServiceDriver.rb +55 -0
  497. data/lib/adwords_api/v201101/GeoLocationServiceMappingRegistry.rb +843 -0
  498. data/lib/adwords_api/v201101/GeoLocationServiceWrapper.rb +303 -0
  499. data/lib/adwords_api/v201101/InfoService.rb +690 -0
  500. data/lib/adwords_api/v201101/InfoServiceDriver.rb +55 -0
  501. data/lib/adwords_api/v201101/InfoServiceMappingRegistry.rb +836 -0
  502. data/lib/adwords_api/v201101/InfoServiceWrapper.rb +303 -0
  503. data/lib/adwords_api/v201101/MediaService.rb +1247 -0
  504. data/lib/adwords_api/v201101/MediaServiceDriver.rb +63 -0
  505. data/lib/adwords_api/v201101/MediaServiceMappingRegistry.rb +1357 -0
  506. data/lib/adwords_api/v201101/MediaServiceWrapper.rb +332 -0
  507. data/lib/adwords_api/v201101/ReportDefinitionService.rb +1121 -0
  508. data/lib/adwords_api/v201101/ReportDefinitionServiceDriver.rb +71 -0
  509. data/lib/adwords_api/v201101/ReportDefinitionServiceMappingRegistry.rb +1263 -0
  510. data/lib/adwords_api/v201101/ReportDefinitionServiceWrapper.rb +364 -0
  511. data/lib/adwords_api/v201101/ServicedAccountService.rb +636 -0
  512. data/lib/adwords_api/v201101/ServicedAccountServiceDriver.rb +55 -0
  513. data/lib/adwords_api/v201101/ServicedAccountServiceMappingRegistry.rb +756 -0
  514. data/lib/adwords_api/v201101/ServicedAccountServiceWrapper.rb +303 -0
  515. data/lib/adwords_api/v201101/TargetingIdeaService.rb +2827 -0
  516. data/lib/adwords_api/v201101/TargetingIdeaServiceDriver.rb +63 -0
  517. data/lib/adwords_api/v201101/TargetingIdeaServiceMappingRegistry.rb +3262 -0
  518. data/lib/adwords_api/v201101/TargetingIdeaServiceWrapper.rb +335 -0
  519. data/lib/adwords_api/v201101/TrafficEstimatorService.rb +1839 -0
  520. data/lib/adwords_api/v201101/TrafficEstimatorServiceDriver.rb +55 -0
  521. data/lib/adwords_api/v201101/TrafficEstimatorServiceMappingRegistry.rb +2128 -0
  522. data/lib/adwords_api/v201101/TrafficEstimatorServiceWrapper.rb +303 -0
  523. data/lib/adwords_api/v201101/UserListService.rb +1206 -0
  524. data/lib/adwords_api/v201101/UserListServiceDriver.rb +63 -0
  525. data/lib/adwords_api/v201101/UserListServiceMappingRegistry.rb +1323 -0
  526. data/lib/adwords_api/v201101/UserListServiceWrapper.rb +332 -0
  527. metadata +649 -0
@@ -0,0 +1,245 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Author:: api.sgomes@gmail.com (Sérgio Gomes)
4
+ #
5
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ #
7
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+ # Contains extensions to the API, that is, service helper methods provided in
21
+ # client-side by the client library.
22
+
23
+ require 'rexml/document'
24
+ require 'csv'
25
+ require 'ads_common/http'
26
+ require 'json'
27
+
28
+ module AdwordsApi
29
+
30
+ module Extensions
31
+
32
+ # Maintains a list of all extension methods, indexed by version and service.
33
+ # Using camelCase to match API method names.
34
+ @@extensions = {
35
+ [:v13, :ReportService] => [:download_xml_report, :download_csv_report],
36
+ [:v201003, :ReportDefinitionService] => [:download_report,
37
+ :download_report_as_file],
38
+ [:v201008, :ReportDefinitionService] => [:download_report,
39
+ :download_report_as_file],
40
+ [:v201101, :ReportDefinitionService] => [:download_report,
41
+ :download_report_as_file, :download_mcc_report]
42
+ }
43
+
44
+ # Defines the parameter list for every extension method
45
+ @@methods = {
46
+ :download_xml_report => [:job_id],
47
+ :download_csv_report => [:job_id],
48
+ :download_report => [:report_definition_id],
49
+ :download_report_as_file => [:report_definition_id, :path]
50
+ }
51
+
52
+ # Return list of all extension methods, indexed by version and service.
53
+ def self.extensions
54
+ return @@extensions
55
+ end
56
+
57
+ # Return the parameter list for every extension method.
58
+ def self.methods
59
+ return @@methods
60
+ end
61
+
62
+ #########################################################################
63
+ # NOTE: The following extension methods shouldn't be used directly; they
64
+ # should instead be used from the services wrappers they get mapped to.
65
+ # For example, you should use ReportServiceWrapper::downloadXmlReport
66
+ # instead of Extensions::downloadXmlReport.
67
+ #########################################################################
68
+
69
+ # <i>Extension method</i> -- Download and return report data in XML format.
70
+ #
71
+ # *Warning*: this method is blocking for the calling thread.
72
+ #
73
+ # Args:
74
+ # - wrapper: the service wrapper object for any API methods that need to be
75
+ # called
76
+ # - job_id: the job id for the report to be downloaded
77
+ #
78
+ # Returns:
79
+ # The xml for the report (as a string)
80
+ #
81
+ def self.download_xml_report(wrapper, job_id)
82
+ sleep_interval = 30
83
+
84
+ status_field = nil
85
+ download_field = nil
86
+
87
+ if wrapper.api.config.read('service.use_ruby_names')
88
+ status_field = :get_report_job_status_return
89
+ download_field = :get_report_download_url_return
90
+ else
91
+ status_field = :getReportJobStatusReturn
92
+ download_field = :getReportDownloadUrlReturn
93
+ end
94
+
95
+ # Repeatedly check the report status until it is finished.
96
+ # 'Pending' and 'InProgress' statuses indicate the job is still being run.
97
+ status = wrapper.get_report_job_status(job_id)[status_field]
98
+ while status != 'Completed' && status != 'Failed'
99
+ sleep(sleep_interval)
100
+ status = wrapper.get_report_job_status(job_id)[status_field]
101
+ end
102
+
103
+ if status == 'Completed'
104
+ report_url = wrapper.get_report_download_url(job_id)[download_field]
105
+
106
+ # Download the report and return its contents. The report is an XML
107
+ # document; the actual element names vary depending on the type of
108
+ # report run and columns requested.
109
+ begin
110
+ return AdsCommon::Http.get(report_url, wrapper.api.config)
111
+ rescue Errno::ECONNRESET, SOAP::HTTPStreamError, SocketError => e
112
+ # This exception indicates a connection-level error.
113
+ # In general, it is likely to be transitory.
114
+ [e, e.backtrace.first]
115
+ end
116
+ else
117
+ # Reports that pass validation will normally not fail, but if there is
118
+ # an error in the report generation service it can sometimes happen.
119
+ raise AdwordsApi::Error::Error, 'Report generation failed.'
120
+ end
121
+ end
122
+
123
+ # <i>Extension method</i> -- Download and return report data in CSV format.
124
+ #
125
+ # *Warning*: this method is blocking for the calling thread.
126
+ #
127
+ # Args:
128
+ # - wrapper: the service wrapper object for any API methods that need to be
129
+ # called
130
+ # - job_id: the job id for the report to be downloaded
131
+ # - xml: optional parameter used for testing and debugging
132
+ #
133
+ # Returns:
134
+ # The CSV data for the report (as a string)
135
+ #
136
+ def self.download_csv_report(wrapper, job_id, report_xml=nil)
137
+ # Get XML report data.
138
+ report_xml = download_xml_report(wrapper, job_id) if report_xml.nil?
139
+
140
+ begin
141
+ # Construct DOM object.
142
+ doc = REXML::Document.new(report_xml)
143
+
144
+ # Get data columns.
145
+ columns = []
146
+ doc.elements.each('report/table/columns/column') do |column_elem|
147
+ name = column_elem.attributes['name']
148
+ columns << name unless name.nil?
149
+ end
150
+
151
+ # Get data rows.
152
+ rows = []
153
+ doc.elements.each('report/table/rows/row') do |row_elem|
154
+ rows << row_elem.attributes unless row_elem.attributes.nil?
155
+ end
156
+
157
+ # Build CSV
158
+ csv = ''
159
+ CSV::Writer.generate(csv) do |writer|
160
+ writer << columns
161
+ rows.each do |row|
162
+ row_values = []
163
+ columns.each { |column| row_values << row[column] }
164
+ writer << row_values
165
+ end
166
+ end
167
+
168
+ return csv
169
+ rescue REXML::ParseException => e
170
+ # Error parsing XML
171
+ raise AdwordsApi::Error::Error,
172
+ "Error parsing report XML: %s\nSource: %s" % [e, e.backtrace.first]
173
+ end
174
+ end
175
+
176
+ # <i>Extension method</i> -- Download and return a v20xx report into a file.
177
+ #
178
+ # *Warning*: this method is blocking for the calling thread.
179
+ #
180
+ # Args:
181
+ # - wrapper: the service wrapper object for any API methods that need to be
182
+ # called
183
+ # - report_definition_id: the id for the report definition
184
+ # - path: the file where the data should be saved
185
+ #
186
+ # Returns:
187
+ # nil
188
+ #
189
+ def self.download_report_as_file(wrapper, report_definition_id, path)
190
+ report_data = download_report(wrapper, report_definition_id)
191
+
192
+ # Write to file (if provided)
193
+ if path
194
+ open(path, 'w') { |file| file.puts(report_data) }
195
+ end
196
+
197
+ return nil
198
+ end
199
+
200
+ # <i>Extension method</i> -- Download and return a v20xx report.
201
+ #
202
+ # *Warning*: this method is blocking for the calling thread.
203
+ #
204
+ # Args:
205
+ # - wrapper: the service wrapper object for any API methods that need to be
206
+ # called
207
+ # - report_definition_id: the id for the report definition
208
+ #
209
+ # Returns:
210
+ # The data for the report (as a string)
211
+ #
212
+ def self.download_report(wrapper, report_definition_id)
213
+ report_response = get_report_response(wrapper, "?__rd=%s" %
214
+ report_definition_id)
215
+ return report_response.body
216
+ end
217
+
218
+ private
219
+
220
+ # Gets a report response for a given parameters.
221
+ def self.get_report_response(wrapper, parameters)
222
+ # Get download URL.
223
+ url = AdwordsApi::ApiConfig.report_download_url(
224
+ wrapper.api.config.read('service.environment'),
225
+ wrapper.version)
226
+
227
+ # Set HTTP headers.
228
+ headers = {}
229
+ credentials = wrapper.api.credential_handler.credentials
230
+ auth_handler = wrapper.api.client_login_handler
231
+ headers['Authorization'] = "GoogleLogin auth=%s" %
232
+ auth_handler.headers(credentials)[:authToken]
233
+ if credentials[:clientEmail]
234
+ headers['clientEmail'] = credentials[:clientEmail]
235
+ elsif credentials[:clientCustomerId]
236
+ headers['clientCustomerId'] = credentials[:clientCustomerId]
237
+ end
238
+
239
+ # Download report data.
240
+ report_response = AdsCommon::Http.get_response(url + parameters,
241
+ wrapper.api.config, headers)
242
+ return report_response
243
+ end
244
+ end
245
+ end
@@ -0,0 +1,121 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Authors:: api.sgomes@gmail.com (Sérgio Gomes)
4
+ #
5
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ #
7
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+ # Handles callbacks for the AdWords API, so that it's possible to log unit
21
+ # consumption and operations performed.
22
+
23
+ require 'ads_common/soap4r_response_handler'
24
+ require 'uri'
25
+
26
+ module AdwordsApi
27
+
28
+ # Handler class to process response messages for API unit usage and statistics
29
+ # information.
30
+ class Soap4rResponseHandler < AdsCommon::Soap4rResponseHandler
31
+
32
+ # Handles the callback method.
33
+ # Logs the request data and tracks unit usage.
34
+ #
35
+ # Args:
36
+ # - method_name: name for the operation that was invoked
37
+ # - endpoint: the enodpoint URL the request was sent to
38
+ # - envelope: the envelope for the SOAP response that was received
39
+ # - params: the parameters that were passed to the method
40
+ # - fault: whether the request resulted in a fault or not
41
+ # - fault_msg: the fault message in case of a fault (nil if none)
42
+ #
43
+ def on_callback(method_name, endpoint, envelope, params, fault = false,
44
+ fault_msg = nil)
45
+ units = nil
46
+ operations = nil
47
+ response_time = nil
48
+ request_id = nil
49
+ operators = nil
50
+ operator_count = nil
51
+
52
+ # Create a hash with the count per operator used in the request
53
+ if params and params[0] and params[0].class.to_s =~ /.*::Mutate/
54
+ if params[0].is_a?(Array) and params[0].size >= 1
55
+ operators = Hash.new(0)
56
+ params[0].each do |operation|
57
+ if operation.is_a? Hash and operation[:operator]
58
+ operators[operation[:operator].to_s] += 1
59
+ elsif operation.is_a? Hash and operation['operator']
60
+ operators[operation['operator'].to_s] += 1
61
+ elsif operation.respond_to? 'operator'
62
+ operators[operation.operator.to_s] += 1
63
+ else
64
+ operators['?'] += 1
65
+ end
66
+ end
67
+ else
68
+ if params[0].is_a? Hash and params[0][:operator]
69
+ operators[params[0][:operator].to_s] += 1
70
+ elsif params[0].is_a? Hash and params[0]['operator']
71
+ operators[params[0]['operator'].to_s] += 1
72
+ elsif params[0].respond_to? 'operator'
73
+ operators[params[0].operator.to_s] += 1
74
+ end
75
+ end
76
+ end
77
+
78
+ if operators
79
+ operator_count = operators.map { |op, num| "#{op}: #{num}" }.join(', ')
80
+ end
81
+
82
+ header = envelope.header if envelope
83
+ if header and header.key?('ResponseHeader')
84
+ header = header['ResponseHeader'].element
85
+ end
86
+
87
+ if header
88
+ @parent.mutex.synchronize do
89
+ units = parse_header(header['units'])
90
+ unless units.nil?
91
+ @parent.last_units = units.to_i
92
+ @parent.total_units = @parent.total_units + units.to_i
93
+ end
94
+
95
+ operations = parse_header(header['operations'])
96
+ response_time = parse_header(header['responseTime'])
97
+ request_id = parse_header(header['requestId'])
98
+ end
99
+ end
100
+
101
+ host = URI.parse(endpoint).host
102
+
103
+ data = "host=#{host} method=#{method_name} " +
104
+ "responseTime=#{response_time} operations=#{operations} "
105
+
106
+ data += "operators={#{operator_count}} " if operator_count
107
+
108
+ data += "units=#{units} requestId=#{request_id} "
109
+
110
+ data += "isFault=#{(!!fault).to_s} "
111
+
112
+ if fault_msg
113
+ data += "faultMessage=\"#{fault_msg}\""
114
+ else
115
+ data += "faultMessage=none"
116
+ end
117
+
118
+ @parent.request_logger << data
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Author:: sgomes@google.com (Sérgio Gomes)
4
+ #
5
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ #
7
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+ # Contains global utility methods.
21
+
22
+ module AdwordsApi
23
+ module Utils
24
+
25
+ public
26
+
27
+ # Gets a map from an array of map entries. A map entry is any object that
28
+ # has a key and value field.
29
+ #
30
+ # Args:
31
+ # - entries: list of map entries
32
+ #
33
+ # Returns:
34
+ # - hash constructed from map entries
35
+ #
36
+ def self.map(entries)
37
+ map = {}
38
+ entries.each do |entry|
39
+ map[entry[:key]] = entry[:value]
40
+ end
41
+ return map
42
+ end
43
+
44
+ # Returns the source operation index for an error
45
+ #
46
+ # Args:
47
+ # - error: the error to be analyzed
48
+ #
49
+ # Returns:
50
+ # - index for the source operation, nil if none
51
+ #
52
+ def self.operation_index_for_error(error)
53
+ if error and error[:field_path]
54
+ parts = error[:field_path].split('.')
55
+ if parts.length > 0
56
+ match = parts.first.match(/operations\[(\d)\]/)
57
+ return match ? match[1].to_i : nil
58
+ end
59
+ end
60
+ return nil
61
+ end
62
+
63
+ # Auxiliary method to format an ID to the pattern ###-###-####.
64
+ #
65
+ # Args:
66
+ # - id: ID in unformatted form
67
+ #
68
+ # Returns:
69
+ # - string containing the formatted ID
70
+ #
71
+ def self.format_id(id)
72
+ str_id = id.to_s.gsub(/\D/, '')
73
+ if str_id.size >= 7
74
+ str_array = str_id.scan(/(\d{3})(\d{3})(\d+)/)
75
+ str_id = str_array.join('-') unless str_array.empty?
76
+ end
77
+ return str_id
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,321 @@
1
+ require 'xsd/qname'
2
+
3
+ module AdwordsApi; module V13; module AccountService
4
+
5
+
6
+ # AccountInfo
7
+ # - billingAddress - AdwordsApi::V13::AccountService::Address
8
+ # - currencyCode - SOAP::SOAPString
9
+ # - customerId - SOAP::SOAPLong
10
+ # - defaultNetworkTargeting - AdwordsApi::V13::AccountService::NetworkTarget
11
+ # - descriptiveName - SOAP::SOAPString
12
+ # - emailPromotionsPreferences - AdwordsApi::V13::AccountService::EmailPromotionsPreferences
13
+ # - languagePreference - SOAP::SOAPString
14
+ # - primaryAddress - AdwordsApi::V13::AccountService::Address
15
+ # - primaryBusinessCategory - SOAP::SOAPString
16
+ # - timeZoneEffectiveDate - SOAP::SOAPLong
17
+ # - timeZoneId - SOAP::SOAPString
18
+ class AccountInfo
19
+ attr_accessor :billingAddress
20
+ attr_accessor :currencyCode
21
+ attr_accessor :customerId
22
+ attr_accessor :defaultNetworkTargeting
23
+ attr_accessor :descriptiveName
24
+ attr_accessor :emailPromotionsPreferences
25
+ attr_accessor :languagePreference
26
+ attr_accessor :primaryAddress
27
+ attr_accessor :primaryBusinessCategory
28
+ attr_accessor :timeZoneEffectiveDate
29
+ attr_accessor :timeZoneId
30
+
31
+ def initialize(billingAddress = nil, currencyCode = nil, customerId = nil, defaultNetworkTargeting = nil, descriptiveName = nil, emailPromotionsPreferences = nil, languagePreference = nil, primaryAddress = nil, primaryBusinessCategory = nil, timeZoneEffectiveDate = nil, timeZoneId = nil)
32
+ @billingAddress = billingAddress
33
+ @currencyCode = currencyCode
34
+ @customerId = customerId
35
+ @defaultNetworkTargeting = defaultNetworkTargeting
36
+ @descriptiveName = descriptiveName
37
+ @emailPromotionsPreferences = emailPromotionsPreferences
38
+ @languagePreference = languagePreference
39
+ @primaryAddress = primaryAddress
40
+ @primaryBusinessCategory = primaryBusinessCategory
41
+ @timeZoneEffectiveDate = timeZoneEffectiveDate
42
+ @timeZoneId = timeZoneId
43
+ end
44
+ end
45
+
46
+ # Address
47
+ # - addressLine1 - SOAP::SOAPString
48
+ # - addressLine2 - SOAP::SOAPString
49
+ # - city - SOAP::SOAPString
50
+ # - companyName - SOAP::SOAPString
51
+ # - countryCode - SOAP::SOAPString
52
+ # - emailAddress - SOAP::SOAPString
53
+ # - faxNumber - SOAP::SOAPString
54
+ # - name - SOAP::SOAPString
55
+ # - phoneNumber - SOAP::SOAPString
56
+ # - postalCode - SOAP::SOAPString
57
+ # - state - SOAP::SOAPString
58
+ class Address
59
+ attr_accessor :addressLine1
60
+ attr_accessor :addressLine2
61
+ attr_accessor :city
62
+ attr_accessor :companyName
63
+ attr_accessor :countryCode
64
+ attr_accessor :emailAddress
65
+ attr_accessor :faxNumber
66
+ attr_accessor :name
67
+ attr_accessor :phoneNumber
68
+ attr_accessor :postalCode
69
+ attr_accessor :state
70
+
71
+ def initialize(addressLine1 = nil, addressLine2 = nil, city = nil, companyName = nil, countryCode = nil, emailAddress = nil, faxNumber = nil, name = nil, phoneNumber = nil, postalCode = nil, state = nil)
72
+ @addressLine1 = addressLine1
73
+ @addressLine2 = addressLine2
74
+ @city = city
75
+ @companyName = companyName
76
+ @countryCode = countryCode
77
+ @emailAddress = emailAddress
78
+ @faxNumber = faxNumber
79
+ @name = name
80
+ @phoneNumber = phoneNumber
81
+ @postalCode = postalCode
82
+ @state = state
83
+ end
84
+ end
85
+
86
+ # ApiError
87
+ # - code - SOAP::SOAPInt
88
+ # - detail - SOAP::SOAPString
89
+ # - field - SOAP::SOAPString
90
+ # - index - SOAP::SOAPInt
91
+ # - isExemptable - SOAP::SOAPBoolean
92
+ # - textIndex - SOAP::SOAPInt
93
+ # - textLength - SOAP::SOAPInt
94
+ # - trigger - SOAP::SOAPString
95
+ class ApiError
96
+ attr_accessor :code
97
+ attr_accessor :detail
98
+ attr_accessor :field
99
+ attr_accessor :index
100
+ attr_accessor :isExemptable
101
+ attr_accessor :textIndex
102
+ attr_accessor :textLength
103
+ attr_accessor :trigger
104
+
105
+ def initialize(code = nil, detail = nil, field = nil, index = nil, isExemptable = nil, textIndex = nil, textLength = nil, trigger = nil)
106
+ @code = code
107
+ @detail = detail
108
+ @field = field
109
+ @index = index
110
+ @isExemptable = isExemptable
111
+ @textIndex = textIndex
112
+ @textLength = textLength
113
+ @trigger = trigger
114
+ end
115
+ end
116
+
117
+ # ApiException
118
+ # - code - SOAP::SOAPInt
119
+ # - errors - AdwordsApi::V13::AccountService::ApiError
120
+ # - internal - SOAP::SOAPBoolean
121
+ # - message - SOAP::SOAPString
122
+ # - trigger - SOAP::SOAPString
123
+ class ApiException
124
+ attr_accessor :code
125
+ attr_accessor :errors
126
+ attr_accessor :internal
127
+ attr_accessor :message
128
+ attr_accessor :trigger
129
+
130
+ def initialize(code = nil, errors = [], internal = nil, message = nil, trigger = nil)
131
+ @code = code
132
+ @errors = errors
133
+ @internal = internal
134
+ @message = message
135
+ @trigger = trigger
136
+ end
137
+ end
138
+
139
+ # ClientAccountInfo
140
+ # - emailAddress - SOAP::SOAPString
141
+ # - isCustomerManager - SOAP::SOAPBoolean
142
+ class ClientAccountInfo
143
+ attr_accessor :emailAddress
144
+ attr_accessor :isCustomerManager
145
+
146
+ def initialize(emailAddress = nil, isCustomerManager = nil)
147
+ @emailAddress = emailAddress
148
+ @isCustomerManager = isCustomerManager
149
+ end
150
+ end
151
+
152
+ # EmailPromotionsPreferences
153
+ # - accountPerformanceEnabled - SOAP::SOAPBoolean
154
+ # - disapprovedAdsEnabled - SOAP::SOAPBoolean
155
+ # - marketResearchEnabled - SOAP::SOAPBoolean
156
+ # - newsletterEnabled - SOAP::SOAPBoolean
157
+ # - promotionsEnabled - SOAP::SOAPBoolean
158
+ class EmailPromotionsPreferences
159
+ attr_accessor :accountPerformanceEnabled
160
+ attr_accessor :disapprovedAdsEnabled
161
+ attr_accessor :marketResearchEnabled
162
+ attr_accessor :newsletterEnabled
163
+ attr_accessor :promotionsEnabled
164
+
165
+ def initialize(accountPerformanceEnabled = nil, disapprovedAdsEnabled = nil, marketResearchEnabled = nil, newsletterEnabled = nil, promotionsEnabled = nil)
166
+ @accountPerformanceEnabled = accountPerformanceEnabled
167
+ @disapprovedAdsEnabled = disapprovedAdsEnabled
168
+ @marketResearchEnabled = marketResearchEnabled
169
+ @newsletterEnabled = newsletterEnabled
170
+ @promotionsEnabled = promotionsEnabled
171
+ end
172
+ end
173
+
174
+ # MccAlert
175
+ # - clientCompanyName - SOAP::SOAPString
176
+ # - clientCustomerId - SOAP::SOAPLong
177
+ # - clientLogin - SOAP::SOAPString
178
+ # - clientName - SOAP::SOAPString
179
+ # - priority - AdwordsApi::V13::AccountService::MccAlertPriority
180
+ # - triggerTime - SOAP::SOAPDateTime
181
+ # - type - AdwordsApi::V13::AccountService::MccAlertType
182
+ class MccAlert
183
+ attr_accessor :clientCompanyName
184
+ attr_accessor :clientCustomerId
185
+ attr_accessor :clientLogin
186
+ attr_accessor :clientName
187
+ attr_accessor :priority
188
+ attr_accessor :triggerTime
189
+ attr_accessor :type
190
+
191
+ def initialize(clientCompanyName = nil, clientCustomerId = nil, clientLogin = nil, clientName = nil, priority = nil, triggerTime = nil, type = nil)
192
+ @clientCompanyName = clientCompanyName
193
+ @clientCustomerId = clientCustomerId
194
+ @clientLogin = clientLogin
195
+ @clientName = clientName
196
+ @priority = priority
197
+ @triggerTime = triggerTime
198
+ @type = type
199
+ end
200
+ end
201
+
202
+ # NetworkTarget
203
+ # - networkTypes - AdwordsApi::V13::AccountService::NetworkType
204
+ class NetworkTarget
205
+ attr_accessor :networkTypes
206
+
207
+ def initialize(networkTypes = [])
208
+ @networkTypes = networkTypes
209
+ end
210
+ end
211
+
212
+ # MccAlertPriority
213
+ class MccAlertPriority < ::String
214
+ High = MccAlertPriority.new("High")
215
+ Low = MccAlertPriority.new("Low")
216
+ end
217
+
218
+ # MccAlertType
219
+ class MccAlertType < ::String
220
+ AccountBudgetBurnRate = MccAlertType.new("AccountBudgetBurnRate")
221
+ AccountBudgetEnding = MccAlertType.new("AccountBudgetEnding")
222
+ AccountOnTarget = MccAlertType.new("AccountOnTarget")
223
+ CampaignEnded = MccAlertType.new("CampaignEnded")
224
+ CampaignEnding = MccAlertType.new("CampaignEnding")
225
+ CreativeDisapproved = MccAlertType.new("CreativeDisapproved")
226
+ CreditCardExpiring = MccAlertType.new("CreditCardExpiring")
227
+ DeclinedPayment = MccAlertType.new("DeclinedPayment")
228
+ KeywordBelowMinCpc = MccAlertType.new("KeywordBelowMinCpc")
229
+ MissingBankReferenceNumber = MccAlertType.new("MissingBankReferenceNumber")
230
+ PaymentNotEntered = MccAlertType.new("PaymentNotEntered")
231
+ end
232
+
233
+ # NetworkType
234
+ class NetworkType < ::String
235
+ ContentNetwork = NetworkType.new("ContentNetwork")
236
+ GoogleSearch = NetworkType.new("GoogleSearch")
237
+ SearchNetwork = NetworkType.new("SearchNetwork")
238
+ end
239
+
240
+ # getAccountInfo
241
+ class GetAccountInfo #:nodoc: all
242
+ def initialize
243
+ end
244
+ end
245
+
246
+ # getAccountInfoResponse
247
+ # - getAccountInfoReturn - AdwordsApi::V13::AccountService::AccountInfo
248
+ class GetAccountInfoResponse #:nodoc: all
249
+ attr_accessor :getAccountInfoReturn
250
+
251
+ def initialize(getAccountInfoReturn = nil)
252
+ @getAccountInfoReturn = getAccountInfoReturn
253
+ end
254
+ end
255
+
256
+ # getClientAccountInfos
257
+ class GetClientAccountInfos #:nodoc: all
258
+ def initialize
259
+ end
260
+ end
261
+
262
+ # getClientAccountInfosResponse
263
+ # - getClientAccountInfosReturn - AdwordsApi::V13::AccountService::ClientAccountInfo
264
+ class GetClientAccountInfosResponse #:nodoc: all
265
+ attr_accessor :getClientAccountInfosReturn
266
+
267
+ def initialize(getClientAccountInfosReturn = [])
268
+ @getClientAccountInfosReturn = getClientAccountInfosReturn
269
+ end
270
+ end
271
+
272
+ # getClientAccounts
273
+ class GetClientAccounts #:nodoc: all
274
+ def initialize
275
+ end
276
+ end
277
+
278
+ # getClientAccountsResponse
279
+ # - getClientAccountsReturn - SOAP::SOAPString
280
+ class GetClientAccountsResponse #:nodoc: all
281
+ attr_accessor :getClientAccountsReturn
282
+
283
+ def initialize(getClientAccountsReturn = [])
284
+ @getClientAccountsReturn = getClientAccountsReturn
285
+ end
286
+ end
287
+
288
+ # getMccAlerts
289
+ class GetMccAlerts #:nodoc: all
290
+ def initialize
291
+ end
292
+ end
293
+
294
+ # getMccAlertsResponse
295
+ # - getMccAlertsReturn - AdwordsApi::V13::AccountService::MccAlert
296
+ class GetMccAlertsResponse #:nodoc: all
297
+ attr_accessor :getMccAlertsReturn
298
+
299
+ def initialize(getMccAlertsReturn = [])
300
+ @getMccAlertsReturn = getMccAlertsReturn
301
+ end
302
+ end
303
+
304
+ # updateAccountInfo
305
+ # - accountInfo - AdwordsApi::V13::AccountService::AccountInfo
306
+ class UpdateAccountInfo #:nodoc: all
307
+ attr_accessor :accountInfo
308
+
309
+ def initialize(accountInfo = nil)
310
+ @accountInfo = accountInfo
311
+ end
312
+ end
313
+
314
+ # updateAccountInfoResponse
315
+ class UpdateAccountInfoResponse #:nodoc: all
316
+ def initialize
317
+ end
318
+ end
319
+
320
+
321
+ end; end; end