google-adwords-api 0.4.0 → 0.4.1

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 (324) hide show
  1. data/ChangeLog +9 -0
  2. data/README +26 -10
  3. data/Rakefile +1 -1
  4. data/examples/v200909/add_ad_group.rb +2 -2
  5. data/examples/v200909/add_ads.rb +4 -4
  6. data/examples/v200909/add_campaign.rb +2 -2
  7. data/examples/v200909/check_campaigns.rb +4 -4
  8. data/examples/v201003/add_ad_group.rb +2 -2
  9. data/examples/v201003/add_ads.rb +6 -6
  10. data/examples/v201003/add_campaign.rb +2 -2
  11. data/examples/v201003/add_keywords_performance_report_definition.rb +2 -2
  12. data/examples/v201003/check_campaigns.rb +4 -4
  13. data/examples/v201008/add_ad_group.rb +2 -2
  14. data/examples/v201008/add_ads.rb +7 -7
  15. data/examples/v201008/add_campaign.rb +2 -2
  16. data/examples/v201008/add_experiment.rb +5 -5
  17. data/examples/v201008/add_keywords_performance_report_definition.rb +2 -2
  18. data/examples/v201008/add_user_list.rb +2 -2
  19. data/examples/v201008/check_campaigns.rb +4 -4
  20. data/examples/v201008/get_account_hierarchy.rb +8 -11
  21. data/examples/v201101/add_ad_group.rb +2 -2
  22. data/examples/v201101/add_ads.rb +6 -6
  23. data/examples/v201101/add_campaign.rb +2 -2
  24. data/examples/v201101/add_conversion.rb +4 -4
  25. data/examples/v201101/add_experiment.rb +5 -5
  26. data/examples/v201101/add_keywords_performance_report_definition.rb +2 -2
  27. data/examples/v201101/add_user_list.rb +3 -3
  28. data/examples/v201101/check_campaigns.rb +4 -4
  29. data/examples/v201101/get_account_hierarchy.rb +7 -9
  30. data/examples/v201109/add_ad_extension_override.rb +82 -0
  31. data/examples/v201109/add_ad_group.rb +89 -0
  32. data/examples/v201109/add_ad_group_criteria.rb +109 -0
  33. data/examples/v201109/add_ads.rb +174 -0
  34. data/examples/v201109/add_campaign.rb +99 -0
  35. data/examples/v201109/add_campaign_ad_extension.rb +121 -0
  36. data/examples/v201109/add_campaign_targeting_criteria.rb +102 -0
  37. data/examples/{v201101/add_mcc_report_definition.rb → v201109/add_conversion.rb} +26 -28
  38. data/examples/v201109/add_experiment.rb +153 -0
  39. data/examples/v201109/add_negative_campaign_criterion.rb +87 -0
  40. data/examples/v201109/add_user_list.rb +113 -0
  41. data/examples/v201109/check_campaigns.rb +123 -0
  42. data/examples/v201109/delete_ad.rb +85 -0
  43. data/examples/v201109/delete_ad_group.rb +77 -0
  44. data/examples/v201109/delete_ad_group_criterion.rb +86 -0
  45. data/examples/v201109/delete_bulk_mutate_job.rb +87 -0
  46. data/examples/v201109/delete_campaign.rb +78 -0
  47. data/examples/v201109/delete_experiment.rb +78 -0
  48. data/examples/v201109/delete_user_list.rb +78 -0
  49. data/examples/v201109/download_adhoc_report.rb +79 -0
  50. data/examples/v201109/download_report.rb +67 -0
  51. data/examples/v201109/get_account_hierarchy.rb +93 -0
  52. data/examples/v201109/get_ad_group_bid_landscape.rb +94 -0
  53. data/examples/v201109/get_all_account_changes.rb +137 -0
  54. data/examples/v201109/get_all_active_ad_group_criteria.rb +98 -0
  55. data/examples/v201109/get_all_ad_extension_overrides.rb +82 -0
  56. data/examples/v201109/get_all_ad_group_criteria.rb +90 -0
  57. data/examples/v201109/get_all_ad_groups.rb +85 -0
  58. data/examples/v201109/get_all_ad_params.rb +86 -0
  59. data/examples/v201109/get_all_ads.rb +90 -0
  60. data/examples/v201109/get_all_campaign_ad_extensions.rb +87 -0
  61. data/examples/v201109/get_all_campaign_targets.rb +74 -0
  62. data/examples/v201109/get_all_campaigns.rb +77 -0
  63. data/examples/v201109/get_all_carriers.rb +72 -0
  64. data/examples/v201109/get_all_conversions.rb +79 -0
  65. data/examples/v201109/get_all_disapproved_ads.rb +93 -0
  66. data/examples/v201109/get_all_experiments.rb +89 -0
  67. data/examples/v201109/get_all_images.rb +82 -0
  68. data/examples/v201109/get_all_languages.rb +73 -0
  69. data/examples/v201109/get_all_paused_campaigns.rb +83 -0
  70. data/examples/v201109/get_all_report_definitions.rb +75 -0
  71. data/examples/v201109/get_all_user_lists.rb +78 -0
  72. data/examples/v201109/get_all_videos.rb +78 -0
  73. data/examples/v201109/get_bulk_mutate_job.rb +97 -0
  74. data/examples/v201109/get_campaign_alerts.rb +95 -0
  75. data/examples/v201109/get_client_customer_id.rb +87 -0
  76. data/examples/v201109/get_conversion_optimizer_eligibility.rb +93 -0
  77. data/examples/v201109/get_criterion_bid_landscape.rb +93 -0
  78. data/examples/v201109/get_geo_location_info.rb +99 -0
  79. data/examples/v201109/get_keyword_opportunities.rb +95 -0
  80. data/examples/v201109/get_location_criteria.rb +103 -0
  81. data/examples/v201109/get_method_cost.rb +87 -0
  82. data/examples/v201109/get_operation_count.rb +79 -0
  83. data/examples/v201109/get_related_keywords.rb +108 -0
  84. data/examples/v201109/get_related_placements.rb +107 -0
  85. data/examples/v201109/get_report_fields.rb +72 -0
  86. data/examples/v201109/get_total_usage_units_per_month.rb +74 -0
  87. data/examples/v201109/get_traffic_estimates.rb +129 -0
  88. data/examples/v201109/get_unit_count.rb +81 -0
  89. data/examples/v201109/handle_partial_failures.rb +127 -0
  90. data/examples/v201109/handle_policy_violation_error.rb +138 -0
  91. data/examples/v201109/handle_second_factor.rb +87 -0
  92. data/examples/v201109/oauth_handling.rb +95 -0
  93. data/examples/v201109/perform_bulk_mutate_job.rb +212 -0
  94. data/examples/v201109/perform_mutate_job.rb +177 -0
  95. data/examples/v201109/promote_experiment.rb +79 -0
  96. data/examples/v201109/set_ad_params.rb +115 -0
  97. data/examples/v201109/update_ad.rb +86 -0
  98. data/examples/v201109/update_ad_group.rb +81 -0
  99. data/examples/v201109/update_ad_group_criterion.rb +99 -0
  100. data/examples/v201109/update_campaign.rb +84 -0
  101. data/examples/v201109/update_conversion.rb +87 -0
  102. data/examples/v201109/update_user_list.rb +82 -0
  103. data/examples/v201109/upload_image.rb +90 -0
  104. data/lib/adwords_api.rb +54 -50
  105. data/lib/adwords_api/api_config.rb +70 -14
  106. data/lib/adwords_api/credential_handler.rb +32 -13
  107. data/lib/adwords_api/errors.rb +12 -0
  108. data/lib/adwords_api/extensions.rb +8 -118
  109. data/lib/adwords_api/report_utils.rb +198 -0
  110. data/lib/adwords_api/utils.rb +5 -2
  111. data/lib/adwords_api/v13/account_service.rb +11 -11
  112. data/lib/adwords_api/v13/account_service_registry.rb +5 -3
  113. data/lib/adwords_api/v13/report_service.rb +15 -15
  114. data/lib/adwords_api/v13/report_service_registry.rb +5 -3
  115. data/lib/adwords_api/v200909/ad_extension_override_service.rb +5 -5
  116. data/lib/adwords_api/v200909/ad_extension_override_service_registry.rb +5 -3
  117. data/lib/adwords_api/v200909/ad_group_ad_service.rb +5 -5
  118. data/lib/adwords_api/v200909/ad_group_ad_service_registry.rb +5 -3
  119. data/lib/adwords_api/v200909/ad_group_criterion_service.rb +5 -5
  120. data/lib/adwords_api/v200909/ad_group_criterion_service_registry.rb +5 -3
  121. data/lib/adwords_api/v200909/ad_group_service.rb +5 -5
  122. data/lib/adwords_api/v200909/ad_group_service_registry.rb +5 -3
  123. data/lib/adwords_api/v200909/ad_param_service.rb +5 -5
  124. data/lib/adwords_api/v200909/ad_param_service_registry.rb +5 -3
  125. data/lib/adwords_api/v200909/bulk_mutate_job_service.rb +5 -5
  126. data/lib/adwords_api/v200909/bulk_mutate_job_service_registry.rb +5 -3
  127. data/lib/adwords_api/v200909/campaign_ad_extension_service.rb +5 -5
  128. data/lib/adwords_api/v200909/campaign_ad_extension_service_registry.rb +5 -3
  129. data/lib/adwords_api/v200909/campaign_criterion_service.rb +5 -5
  130. data/lib/adwords_api/v200909/campaign_criterion_service_registry.rb +5 -3
  131. data/lib/adwords_api/v200909/campaign_service.rb +5 -5
  132. data/lib/adwords_api/v200909/campaign_service_registry.rb +5 -3
  133. data/lib/adwords_api/v200909/campaign_target_service.rb +5 -5
  134. data/lib/adwords_api/v200909/campaign_target_service_registry.rb +5 -3
  135. data/lib/adwords_api/v200909/geo_location_service.rb +3 -3
  136. data/lib/adwords_api/v200909/geo_location_service_registry.rb +5 -3
  137. data/lib/adwords_api/v200909/info_service.rb +3 -3
  138. data/lib/adwords_api/v200909/info_service_registry.rb +5 -3
  139. data/lib/adwords_api/v200909/targeting_idea_service.rb +5 -5
  140. data/lib/adwords_api/v200909/targeting_idea_service_registry.rb +5 -3
  141. data/lib/adwords_api/v201003/ad_extension_override_service.rb +5 -5
  142. data/lib/adwords_api/v201003/ad_extension_override_service_registry.rb +5 -3
  143. data/lib/adwords_api/v201003/ad_group_ad_service.rb +5 -5
  144. data/lib/adwords_api/v201003/ad_group_ad_service_registry.rb +5 -3
  145. data/lib/adwords_api/v201003/ad_group_criterion_service.rb +5 -5
  146. data/lib/adwords_api/v201003/ad_group_criterion_service_registry.rb +5 -3
  147. data/lib/adwords_api/v201003/ad_group_service.rb +5 -5
  148. data/lib/adwords_api/v201003/ad_group_service_registry.rb +5 -3
  149. data/lib/adwords_api/v201003/ad_param_service.rb +5 -5
  150. data/lib/adwords_api/v201003/ad_param_service_registry.rb +5 -3
  151. data/lib/adwords_api/v201003/bid_landscape_service.rb +3 -3
  152. data/lib/adwords_api/v201003/bid_landscape_service_registry.rb +5 -3
  153. data/lib/adwords_api/v201003/bulk_mutate_job_service.rb +5 -5
  154. data/lib/adwords_api/v201003/bulk_mutate_job_service_registry.rb +5 -3
  155. data/lib/adwords_api/v201003/campaign_ad_extension_service.rb +5 -5
  156. data/lib/adwords_api/v201003/campaign_ad_extension_service_registry.rb +5 -3
  157. data/lib/adwords_api/v201003/campaign_criterion_service.rb +5 -5
  158. data/lib/adwords_api/v201003/campaign_criterion_service_registry.rb +5 -3
  159. data/lib/adwords_api/v201003/campaign_service.rb +5 -5
  160. data/lib/adwords_api/v201003/campaign_service_registry.rb +5 -3
  161. data/lib/adwords_api/v201003/campaign_target_service.rb +5 -5
  162. data/lib/adwords_api/v201003/campaign_target_service_registry.rb +5 -3
  163. data/lib/adwords_api/v201003/geo_location_service.rb +3 -3
  164. data/lib/adwords_api/v201003/geo_location_service_registry.rb +5 -3
  165. data/lib/adwords_api/v201003/info_service.rb +3 -3
  166. data/lib/adwords_api/v201003/info_service_registry.rb +5 -3
  167. data/lib/adwords_api/v201003/media_service.rb +5 -5
  168. data/lib/adwords_api/v201003/media_service_registry.rb +5 -3
  169. data/lib/adwords_api/v201003/report_definition_service.rb +7 -7
  170. data/lib/adwords_api/v201003/report_definition_service_registry.rb +5 -3
  171. data/lib/adwords_api/v201003/targeting_idea_service.rb +5 -5
  172. data/lib/adwords_api/v201003/targeting_idea_service_registry.rb +5 -3
  173. data/lib/adwords_api/v201008/ad_extension_override_service.rb +5 -5
  174. data/lib/adwords_api/v201008/ad_extension_override_service_registry.rb +5 -3
  175. data/lib/adwords_api/v201008/ad_group_ad_service.rb +5 -5
  176. data/lib/adwords_api/v201008/ad_group_ad_service_registry.rb +5 -3
  177. data/lib/adwords_api/v201008/ad_group_criterion_service.rb +5 -5
  178. data/lib/adwords_api/v201008/ad_group_criterion_service_registry.rb +5 -3
  179. data/lib/adwords_api/v201008/ad_group_service.rb +5 -5
  180. data/lib/adwords_api/v201008/ad_group_service_registry.rb +5 -3
  181. data/lib/adwords_api/v201008/ad_param_service.rb +5 -5
  182. data/lib/adwords_api/v201008/ad_param_service_registry.rb +5 -3
  183. data/lib/adwords_api/v201008/alert_service.rb +3 -3
  184. data/lib/adwords_api/v201008/alert_service_registry.rb +5 -3
  185. data/lib/adwords_api/v201008/bid_landscape_service.rb +3 -3
  186. data/lib/adwords_api/v201008/bid_landscape_service_registry.rb +5 -3
  187. data/lib/adwords_api/v201008/bulk_mutate_job_service.rb +5 -5
  188. data/lib/adwords_api/v201008/bulk_mutate_job_service_registry.rb +5 -3
  189. data/lib/adwords_api/v201008/campaign_ad_extension_service.rb +5 -5
  190. data/lib/adwords_api/v201008/campaign_ad_extension_service_registry.rb +5 -3
  191. data/lib/adwords_api/v201008/campaign_criterion_service.rb +5 -5
  192. data/lib/adwords_api/v201008/campaign_criterion_service_registry.rb +5 -3
  193. data/lib/adwords_api/v201008/campaign_service.rb +5 -5
  194. data/lib/adwords_api/v201008/campaign_service_registry.rb +5 -3
  195. data/lib/adwords_api/v201008/campaign_target_service.rb +5 -5
  196. data/lib/adwords_api/v201008/campaign_target_service_registry.rb +5 -3
  197. data/lib/adwords_api/v201008/customer_sync_service.rb +3 -3
  198. data/lib/adwords_api/v201008/customer_sync_service_registry.rb +5 -3
  199. data/lib/adwords_api/v201008/experiment_service.rb +5 -5
  200. data/lib/adwords_api/v201008/experiment_service_registry.rb +5 -3
  201. data/lib/adwords_api/v201008/geo_location_service.rb +3 -3
  202. data/lib/adwords_api/v201008/geo_location_service_registry.rb +5 -3
  203. data/lib/adwords_api/v201008/info_service.rb +3 -3
  204. data/lib/adwords_api/v201008/info_service_registry.rb +5 -3
  205. data/lib/adwords_api/v201008/media_service.rb +5 -5
  206. data/lib/adwords_api/v201008/media_service_registry.rb +5 -3
  207. data/lib/adwords_api/v201008/report_definition_service.rb +7 -7
  208. data/lib/adwords_api/v201008/report_definition_service_registry.rb +5 -3
  209. data/lib/adwords_api/v201008/serviced_account_service.rb +3 -3
  210. data/lib/adwords_api/v201008/serviced_account_service_registry.rb +5 -3
  211. data/lib/adwords_api/v201008/targeting_idea_service.rb +5 -5
  212. data/lib/adwords_api/v201008/targeting_idea_service_registry.rb +5 -3
  213. data/lib/adwords_api/v201008/traffic_estimator_service.rb +3 -3
  214. data/lib/adwords_api/v201008/traffic_estimator_service_registry.rb +5 -3
  215. data/lib/adwords_api/v201008/user_list_service.rb +5 -5
  216. data/lib/adwords_api/v201008/user_list_service_registry.rb +5 -3
  217. data/lib/adwords_api/v201101/ad_extension_override_service.rb +5 -5
  218. data/lib/adwords_api/v201101/ad_extension_override_service_registry.rb +5 -3
  219. data/lib/adwords_api/v201101/ad_group_ad_service.rb +5 -5
  220. data/lib/adwords_api/v201101/ad_group_ad_service_registry.rb +5 -3
  221. data/lib/adwords_api/v201101/ad_group_criterion_service.rb +5 -5
  222. data/lib/adwords_api/v201101/ad_group_criterion_service_registry.rb +5 -3
  223. data/lib/adwords_api/v201101/ad_group_service.rb +5 -5
  224. data/lib/adwords_api/v201101/ad_group_service_registry.rb +5 -3
  225. data/lib/adwords_api/v201101/ad_param_service.rb +5 -5
  226. data/lib/adwords_api/v201101/ad_param_service_registry.rb +5 -3
  227. data/lib/adwords_api/v201101/alert_service.rb +3 -3
  228. data/lib/adwords_api/v201101/alert_service_registry.rb +5 -3
  229. data/lib/adwords_api/v201101/bulk_mutate_job_service.rb +5 -5
  230. data/lib/adwords_api/v201101/bulk_mutate_job_service_registry.rb +5 -3
  231. data/lib/adwords_api/v201101/bulk_opportunity_service.rb +3 -3
  232. data/lib/adwords_api/v201101/bulk_opportunity_service_registry.rb +5 -3
  233. data/lib/adwords_api/v201101/campaign_ad_extension_service.rb +5 -5
  234. data/lib/adwords_api/v201101/campaign_ad_extension_service_registry.rb +5 -3
  235. data/lib/adwords_api/v201101/campaign_criterion_service.rb +5 -5
  236. data/lib/adwords_api/v201101/campaign_criterion_service_registry.rb +5 -3
  237. data/lib/adwords_api/v201101/campaign_service.rb +5 -5
  238. data/lib/adwords_api/v201101/campaign_service_registry.rb +5 -3
  239. data/lib/adwords_api/v201101/campaign_target_service.rb +5 -5
  240. data/lib/adwords_api/v201101/campaign_target_service_registry.rb +5 -3
  241. data/lib/adwords_api/v201101/conversion_tracker_service.rb +5 -5
  242. data/lib/adwords_api/v201101/conversion_tracker_service_registry.rb +5 -3
  243. data/lib/adwords_api/v201101/customer_sync_service.rb +3 -3
  244. data/lib/adwords_api/v201101/customer_sync_service_registry.rb +5 -3
  245. data/lib/adwords_api/v201101/data_service.rb +5 -5
  246. data/lib/adwords_api/v201101/data_service_registry.rb +5 -3
  247. data/lib/adwords_api/v201101/experiment_service.rb +5 -5
  248. data/lib/adwords_api/v201101/experiment_service_registry.rb +5 -3
  249. data/lib/adwords_api/v201101/geo_location_service.rb +3 -3
  250. data/lib/adwords_api/v201101/geo_location_service_registry.rb +5 -3
  251. data/lib/adwords_api/v201101/info_service.rb +3 -3
  252. data/lib/adwords_api/v201101/info_service_registry.rb +5 -3
  253. data/lib/adwords_api/v201101/media_service.rb +5 -5
  254. data/lib/adwords_api/v201101/media_service_registry.rb +5 -3
  255. data/lib/adwords_api/v201101/report_definition_service.rb +7 -15
  256. data/lib/adwords_api/v201101/report_definition_service_registry.rb +5 -3
  257. data/lib/adwords_api/v201101/serviced_account_service.rb +3 -3
  258. data/lib/adwords_api/v201101/serviced_account_service_registry.rb +5 -3
  259. data/lib/adwords_api/v201101/targeting_idea_service.rb +5 -5
  260. data/lib/adwords_api/v201101/targeting_idea_service_registry.rb +5 -3
  261. data/lib/adwords_api/v201101/traffic_estimator_service.rb +3 -3
  262. data/lib/adwords_api/v201101/traffic_estimator_service_registry.rb +5 -3
  263. data/lib/adwords_api/v201101/user_list_service.rb +5 -5
  264. data/lib/adwords_api/v201101/user_list_service_registry.rb +5 -3
  265. data/lib/adwords_api/v201109/ad_extension_override_service.rb +36 -0
  266. data/lib/adwords_api/v201109/ad_extension_override_service_registry.rb +44 -0
  267. data/lib/adwords_api/v201109/ad_group_ad_service.rb +36 -0
  268. data/lib/adwords_api/v201109/ad_group_ad_service_registry.rb +44 -0
  269. data/lib/adwords_api/v201109/ad_group_criterion_service.rb +36 -0
  270. data/lib/adwords_api/v201109/ad_group_criterion_service_registry.rb +44 -0
  271. data/lib/adwords_api/v201109/ad_group_service.rb +36 -0
  272. data/lib/adwords_api/v201109/ad_group_service_registry.rb +44 -0
  273. data/lib/adwords_api/v201109/ad_param_service.rb +36 -0
  274. data/lib/adwords_api/v201109/ad_param_service_registry.rb +44 -0
  275. data/lib/adwords_api/v201109/alert_service.rb +32 -0
  276. data/lib/adwords_api/v201109/alert_service_registry.rb +44 -0
  277. data/lib/adwords_api/v201109/bulk_mutate_job_service.rb +36 -0
  278. data/lib/adwords_api/v201109/bulk_mutate_job_service_registry.rb +44 -0
  279. data/lib/adwords_api/v201109/bulk_opportunity_service.rb +32 -0
  280. data/lib/adwords_api/v201109/bulk_opportunity_service_registry.rb +44 -0
  281. data/lib/adwords_api/v201109/campaign_ad_extension_service.rb +36 -0
  282. data/lib/adwords_api/v201109/campaign_ad_extension_service_registry.rb +44 -0
  283. data/lib/adwords_api/v201109/campaign_criterion_service.rb +36 -0
  284. data/lib/adwords_api/v201109/campaign_criterion_service_registry.rb +44 -0
  285. data/lib/adwords_api/v201109/campaign_service.rb +36 -0
  286. data/lib/adwords_api/v201109/campaign_service_registry.rb +44 -0
  287. data/lib/adwords_api/v201109/campaign_target_service.rb +36 -0
  288. data/lib/adwords_api/v201109/campaign_target_service_registry.rb +44 -0
  289. data/lib/adwords_api/v201109/constant_data_service.rb +36 -0
  290. data/lib/adwords_api/v201109/constant_data_service_registry.rb +44 -0
  291. data/lib/adwords_api/v201109/conversion_tracker_service.rb +36 -0
  292. data/lib/adwords_api/v201109/conversion_tracker_service_registry.rb +44 -0
  293. data/lib/adwords_api/v201109/customer_sync_service.rb +32 -0
  294. data/lib/adwords_api/v201109/customer_sync_service_registry.rb +45 -0
  295. data/lib/adwords_api/v201109/data_service.rb +36 -0
  296. data/lib/adwords_api/v201109/data_service_registry.rb +44 -0
  297. data/lib/adwords_api/v201109/experiment_service.rb +36 -0
  298. data/lib/adwords_api/v201109/experiment_service_registry.rb +44 -0
  299. data/lib/adwords_api/v201109/geo_location_service.rb +32 -0
  300. data/lib/adwords_api/v201109/geo_location_service_registry.rb +44 -0
  301. data/lib/adwords_api/v201109/info_service.rb +32 -0
  302. data/lib/adwords_api/v201109/info_service_registry.rb +44 -0
  303. data/lib/adwords_api/v201109/location_criterion_service.rb +32 -0
  304. data/lib/adwords_api/v201109/location_criterion_service_registry.rb +44 -0
  305. data/lib/adwords_api/v201109/media_service.rb +36 -0
  306. data/lib/adwords_api/v201109/media_service_registry.rb +44 -0
  307. data/lib/adwords_api/v201109/mutate_job_service.rb +40 -0
  308. data/lib/adwords_api/v201109/mutate_job_service_registry.rb +44 -0
  309. data/lib/adwords_api/v201109/report_definition_service.rb +45 -0
  310. data/lib/adwords_api/v201109/report_definition_service_registry.rb +44 -0
  311. data/lib/adwords_api/v201109/serviced_account_service.rb +32 -0
  312. data/lib/adwords_api/v201109/serviced_account_service_registry.rb +44 -0
  313. data/lib/adwords_api/v201109/targeting_idea_service.rb +36 -0
  314. data/lib/adwords_api/v201109/targeting_idea_service_registry.rb +44 -0
  315. data/lib/adwords_api/v201109/traffic_estimator_service.rb +32 -0
  316. data/lib/adwords_api/v201109/traffic_estimator_service_registry.rb +44 -0
  317. data/lib/adwords_api/v201109/user_list_service.rb +36 -0
  318. data/lib/adwords_api/v201109/user_list_service_registry.rb +44 -0
  319. data/test/bugs/test_issue_00000031.rb +78 -0
  320. metadata +467 -342
  321. data/examples/v201101/download_mcc_report.rb +0 -113
  322. data/examples/v201101/download_mcc_report_as_file.rb +0 -114
  323. data/lib/adwords_api/v13/traffic_estimator_service.rb +0 -44
  324. data/lib/adwords_api/v13/traffic_estimator_service_registry.rb +0 -39
@@ -0,0 +1,94 @@
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
+ # This example gets bid landscapes for an ad group. To get ad groups,
21
+ # run get_all_ad_groups.rb.
22
+ #
23
+ # Tags: DataService.getAdGroupBidLandscape
24
+
25
+ require 'rubygems'
26
+ require 'adwords_api'
27
+
28
+ API_VERSION = :v201109
29
+
30
+ def get_ad_group_bid_landscapes()
31
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
32
+ # when called without parameters.
33
+ adwords = AdwordsApi::Api.new
34
+
35
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
36
+ # the configuration file or provide your own logger:
37
+ # adwords.logger = Logger.new('adwords_xml.log')
38
+
39
+ data_srv = adwords.service(:DataService, API_VERSION)
40
+
41
+ ad_group_id = 'INSERT_ADGROUP_ID_HERE'.to_i
42
+ criterion_id = 'INSERT_CRITERION_ID_HERE'.to_i
43
+
44
+ # Get bid landscape for ad group.
45
+ selector = {
46
+ :fields => ["AdGroupId", "LandscapeType", "LandscapeCurrent", "StartDate",
47
+ "EndDate", "Bid", "LocalClicks", "LocalCost", "MarginalCpc",
48
+ "LocalImpressions"],
49
+ :predicates => [
50
+ {:field => 'AdGroupId', :operator => 'IN', :values => [ad_group_id]}
51
+ ]
52
+ }
53
+ page = data_srv.get_criterion_bid_landscape(selector)
54
+ if page and page[:entries]
55
+ puts "#{page[:entries].length} bid landscape(s) retrieved."
56
+ page[:entries].each do |bid_landscape|
57
+ puts "Found ad group bid landscape with ad group id " +
58
+ "'#{bid_landscape[:ad_group_id]}', type " +
59
+ "'#{bid_landscape[:type]}', current " +
60
+ "'#{bid_landscape[:landscape_current]}', start date " +
61
+ "'#{bid_landscape[:start_date]}', end date "+
62
+ "'#{bid_landscape[:end_date]}', with landscape points:"
63
+ bid_landscape[:landscape_points].each do |point|
64
+ puts " #{point[:bid][:micro_amount]} => clicks: #{point.clicks}, " +
65
+ "cost: #{point[:cost][:micro_amount]}, marginalCpc: " +
66
+ "#{point[:marginal_cpc][:micro_amount]}, impressions: " +
67
+ "#{point[:impressions]}"
68
+ end
69
+ end
70
+ else
71
+ puts "No ad group bid landscapes retrieved."
72
+ end
73
+ end
74
+
75
+ if __FILE__ == $0
76
+ begin
77
+ get_ad_group_bid_landscapes()
78
+
79
+ # HTTP errors.
80
+ rescue AdsCommon::Errors::HttpError => e
81
+ puts "HTTP Error: %s" % e
82
+
83
+ # API errors.
84
+ rescue AdwordsApi::Errors::ApiException => e
85
+ puts "Message: %s" % e.message
86
+ puts 'Errors:'
87
+ e.errors.each_with_index do |error, index|
88
+ puts "\tError [%d]:" % (index + 1)
89
+ error.each do |field, value|
90
+ puts "\t\t%s: %s" % [field, value]
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,137 @@
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
+ # This example gets all account changes between the two dates specified, for
21
+ # all campaigns.
22
+ #
23
+ # Tags: CustomerSyncService.get
24
+
25
+ require 'rubygems'
26
+ require 'adwords_api'
27
+ require 'pp'
28
+
29
+ API_VERSION = :v201109
30
+
31
+ def get_all_account_changes()
32
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
+ # when called without parameters.
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
+
40
+ campaign_srv = adwords.service(:CampaignService, API_VERSION)
41
+ customer_sync_srv = adwords.service(:CustomerSyncService, API_VERSION)
42
+
43
+ today_at_midnight = DateTime.parse(Date.today.to_s)
44
+ yesterday_at_midnight = DateTime.parse((Date.today - 1).to_s)
45
+ min_date_time = yesterday_at_midnight.strftime("%Y%m%d %H%M%S")
46
+ max_date_time = today_at_midnight.strftime("%Y%m%d %H%M%S")
47
+
48
+ # Get all the campaigns for this account.
49
+ selector = {
50
+ :fields => ['Id']
51
+ }
52
+ response = campaign_srv.get(selector)
53
+
54
+ campaign_ids = []
55
+
56
+ if response and response[:entries]
57
+ campaigns = response[:entries]
58
+ campaign_ids = campaigns.map { |campaign| campaign[:id] }
59
+ else
60
+ puts "No campaigns were found."
61
+ return
62
+ end
63
+
64
+ # Create selector for CustomerSyncService.
65
+ selector = {
66
+ :campaign_ids => campaign_ids,
67
+ :date_time_range => {
68
+ :min => min_date_time,
69
+ :max => max_date_time
70
+ }
71
+ }
72
+
73
+ # Get all account changes for campaigns.
74
+ campaign_changes = customer_sync_srv.get(selector)
75
+
76
+ # Display changes.
77
+ if campaign_changes
78
+ puts "Most recent change: #{campaign_changes[:last_change_timestamp]}"
79
+ campaign_changes[:changed_campaigns].each do |campaign|
80
+ puts "Campaign with id #{campaign[:campaign_id]} was changed:"
81
+ puts " Campaign changed status: #{campaign[:campaign_change_status]}"
82
+ if campaign[:campaign_change_status] != 'NEW'
83
+ puts " Added ad extensions: %s" %
84
+ campaign[:added_ad_extensions].pretty_inspect
85
+ puts " Added campaign criteria: %s" %
86
+ campaign[:added_campaign_criteria].pretty_inspect
87
+ puts " Added campaign targeting: %s" %
88
+ campaign[:campaign_targeting_changed].pretty_inspect
89
+ puts " Deleted ad extensions: %s" %
90
+ campaign[:deleted_ad_extensions].pretty_inspect
91
+ puts " Deleted campaign criteria: %s" %
92
+ campaign[:deleted_campaign_criteria].pretty_inspect
93
+
94
+ if campaign[:changed_ad_groups]
95
+ campaign[:changed_ad_groups].each do |ad_group|
96
+ puts " Ad group with id #{ad_group[:ad_group_id]} was changed:"
97
+ puts " Ad group changed status: " +
98
+ "#{ad_group[:ad_group_change_status]}"
99
+ if ad_group[:ad_group_change_status] != 'NEW'
100
+ puts " Ads changed: %s" % ad_group[:changed_ads].pretty_inspect
101
+ puts " Criteria changed: %s" %
102
+ ad_group[:changed_criteria].pretty_inspect
103
+ puts " Criteria deleted: %s" %
104
+ ad_group[:deleted_criteria].pretty_inspect
105
+ end
106
+ end
107
+ end
108
+ end
109
+ puts ''
110
+ end
111
+ else
112
+ puts "No account changes were found."
113
+ end
114
+
115
+
116
+ end
117
+
118
+ if __FILE__ == $0
119
+ begin
120
+ get_all_account_changes()
121
+
122
+ # HTTP errors.
123
+ rescue AdsCommon::Errors::HttpError => e
124
+ puts "HTTP Error: %s" % e
125
+
126
+ # API errors.
127
+ rescue AdwordsApi::Errors::ApiException => e
128
+ puts "Message: %s" % e.message
129
+ puts 'Errors:'
130
+ e.errors.each_with_index do |error, index|
131
+ puts "\tError [%d]:" % (index + 1)
132
+ error.each do |field, value|
133
+ puts "\t\t%s: %s" % [field, value]
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,98 @@
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
+ # This example illustrates how to retrieve all the active criteria for an ad
21
+ # group. To add criteria to an existing ad group, run add_ad_group_criteria.rb.
22
+ #
23
+ # Tags: AdGroupCriterionService.get
24
+
25
+ require 'rubygems'
26
+ require 'adwords_api'
27
+
28
+ API_VERSION = :v201109
29
+
30
+ def get_all_active_ad_group_criteria()
31
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
32
+ # when called without parameters.
33
+ adwords = AdwordsApi::Api.new
34
+
35
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
36
+ # the configuration file or provide your own logger:
37
+ # adwords.logger = Logger.new('adwords_xml.log')
38
+
39
+ ad_group_criterion_srv =
40
+ adwords.service(:AdGroupCriterionService, API_VERSION)
41
+
42
+ ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
43
+
44
+ # Get all the active criteria for this ad group
45
+ selector = {
46
+ :fields => ['Id'],
47
+ :ordering => [{
48
+ :field => 'AdGroupId',
49
+ :sort_order => 'ASCENDING'
50
+ }],
51
+ :predicates => [
52
+ {
53
+ :field => 'AdGroupId',
54
+ :operator => 'IN',
55
+ :values => [ad_group_id]
56
+ },
57
+ {
58
+ :field => 'Status',
59
+ :operator => 'IN',
60
+ :values => ['ACTIVE']
61
+ }
62
+ ]
63
+ }
64
+ response = ad_group_criterion_srv.get(selector)
65
+ if response and response[:entries]
66
+ ad_group_criteria = response[:entries]
67
+ puts "Ad group ID %d has %d active criteria." % [ad_group_id,
68
+ ad_group_criteria.length]
69
+ ad_group_criteria.each do |ad_group_criterion|
70
+ puts "\tCriterion ID is %d and type is '%s'" %
71
+ [ad_group_criterion[:criterion][:id],
72
+ ad_group_criterion[:criterion][:type]]
73
+ end
74
+ else
75
+ puts "No active criteria found for ad group %d" % ad_group_id
76
+ end
77
+ end
78
+
79
+ if __FILE__ == $0
80
+ begin
81
+ get_all_active_ad_group_criteria()
82
+
83
+ # HTTP errors.
84
+ rescue AdsCommon::Errors::HttpError => e
85
+ puts "HTTP Error: %s" % e
86
+
87
+ # API errors.
88
+ rescue AdwordsApi::Errors::ApiException => e
89
+ puts "Message: %s" % e.message
90
+ puts 'Errors:'
91
+ e.errors.each_with_index do |error, index|
92
+ puts "\tError [%d]:" % (index + 1)
93
+ error.each do |field, value|
94
+ puts "\t\t%s: %s" % [field, value]
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,82 @@
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
+ # This example illustrates how to retrieve all the ad extension overrides
21
+ # for an existing campaign. To create an ad extension override run
22
+ # add_ad_extension_override.rb.
23
+ #
24
+ # Tags: AdExtensionOverrideService.get
25
+
26
+ require 'rubygems'
27
+ require 'adwords_api'
28
+
29
+ API_VERSION = :v201109
30
+
31
+ def get_all_ad_extension_overrides()
32
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
33
+ # when called without parameters.
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
+
40
+ ad_ext_override_srv =
41
+ adwords.service(:AdExtensionOverrideService, API_VERSION)
42
+
43
+ campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
44
+
45
+ # Get all the ad extension overrides for this campaign.
46
+ selector = {
47
+ :campaign_ids => [campaign_id]
48
+ }
49
+ response = ad_ext_override_srv.get(selector)
50
+ if response and response[:entries]
51
+ ext_overrides = response[:entries]
52
+ puts "Campaign ##{campaign_id} has #{ext_overrides.size} ad extension " +
53
+ "override(s)."
54
+ ext_overrides.each do |ext_override|
55
+ puts " Ad extension override for ad ##{ext_override[:ad_id]} " +
56
+ "and ad extension ##{ext_override[:ad_extension][:id]}."
57
+ end
58
+ else
59
+ puts "No ad extension overrides found for campaign ##{campaign_id}."
60
+ end
61
+ end
62
+
63
+ if __FILE__ == $0
64
+ begin
65
+ get_all_ad_extension_overrides()
66
+
67
+ # HTTP errors.
68
+ rescue AdsCommon::Errors::HttpError => e
69
+ puts "HTTP Error: %s" % e
70
+
71
+ # API errors.
72
+ rescue AdwordsApi::Errors::ApiException => e
73
+ puts "Message: %s" % e.message
74
+ puts 'Errors:'
75
+ e.errors.each_with_index do |error, index|
76
+ puts "\tError [%d]:" % (index + 1)
77
+ error.each do |field, value|
78
+ puts "\t\t%s: %s" % [field, value]
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,90 @@
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
+ # This example illustrates how to retrieve all the criteria for an ad group.
21
+ # To add criteria to an existing ad group, run add_ad_group_criteria.rb.
22
+ #
23
+ # Tags: AdGroupCriterionService.get
24
+
25
+ require 'rubygems'
26
+ require 'adwords_api'
27
+
28
+ API_VERSION = :v201109
29
+ def get_all_ad_group_criteria()
30
+ # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
31
+ # when called without parameters.
32
+ adwords = AdwordsApi::Api.new
33
+
34
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
35
+ # the configuration file or provide your own logger:
36
+ # adwords.logger = Logger.new('adwords_xml.log')
37
+
38
+ ad_group_criterion_srv =
39
+ adwords.service(:AdGroupCriterionService, API_VERSION)
40
+
41
+ ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
42
+
43
+ # Get all the criteria for this ad group.
44
+ selector = {
45
+ :fields => ['Id'],
46
+ :ordering => [{
47
+ :field => 'AdGroupId',
48
+ :sort_order => 'ASCENDING'
49
+ }],
50
+ :predicates => [{
51
+ :field => 'AdGroupId',
52
+ :operator => 'IN',
53
+ :values => [ad_group_id]
54
+ }]
55
+ }
56
+ response = ad_group_criterion_srv.get(selector)
57
+ if response and response[:entries]
58
+ ad_group_criteria = response[:entries]
59
+ puts "Ad group #%d has %d criteria." % [ad_group_id,
60
+ ad_group_criteria.length]
61
+ ad_group_criteria.each do |ad_group_criterion|
62
+ puts "\tCriterion ID is %d and type is '%s'" %
63
+ [ad_group_criterion[:criterion][:id],
64
+ ad_group_criterion[:criterion][:type]]
65
+ end
66
+ else
67
+ puts "No criteria found for ad group #%d" % ad_group_id
68
+ end
69
+ end
70
+
71
+ if __FILE__ == $0
72
+ begin
73
+ get_all_ad_group_criteria()
74
+
75
+ # HTTP errors.
76
+ rescue AdsCommon::Errors::HttpError => e
77
+ puts "HTTP Error: %s" % e
78
+
79
+ # API errors.
80
+ rescue AdwordsApi::Errors::ApiException => e
81
+ puts "Message: %s" % e.message
82
+ puts 'Errors:'
83
+ e.errors.each_with_index do |error, index|
84
+ puts "\tError [%d]:" % (index + 1)
85
+ error.each do |field, value|
86
+ puts "\t\t%s: %s" % [field, value]
87
+ end
88
+ end
89
+ end
90
+ end