google-adwords-api 0.18.3 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (437) hide show
  1. checksums.yaml +4 -4
  2. data/COPYING +0 -0
  3. data/ChangeLog +5 -0
  4. data/README.md +0 -0
  5. data/adwords_api.yml +0 -0
  6. data/examples/v201509/{advanced_operations → campaign_management}/add_keywords_using_incremental_batch_job.rb +0 -0
  7. data/examples/v201601/{advanced_operations → campaign_management}/add_keywords_using_incremental_batch_job.rb +0 -0
  8. data/examples/v201603/campaign_management/add_draft.rb +0 -0
  9. data/examples/v201603/{advanced_operations → campaign_management}/add_keywords_using_incremental_batch_job.rb +0 -0
  10. data/examples/v201603/campaign_management/add_trial.rb +0 -0
  11. data/examples/v201603/campaign_management/graduate_trial.rb +0 -0
  12. data/lib/adwords_api.rb +0 -0
  13. data/lib/adwords_api/api_config.rb +0 -87
  14. data/lib/adwords_api/batch_job_utils.rb +1 -1
  15. data/lib/adwords_api/credential_handler.rb +0 -0
  16. data/lib/adwords_api/errors.rb +0 -0
  17. data/lib/adwords_api/incremental_upload_helper.rb +0 -0
  18. data/lib/adwords_api/report_header_handler.rb +0 -0
  19. data/lib/adwords_api/report_stream.rb +0 -0
  20. data/lib/adwords_api/report_utils.rb +0 -0
  21. data/lib/adwords_api/utils.rb +0 -0
  22. data/lib/adwords_api/utils_reporter.rb +0 -0
  23. data/lib/adwords_api/v201509/account_label_service.rb +0 -0
  24. data/lib/adwords_api/v201509/account_label_service_registry.rb +0 -0
  25. data/lib/adwords_api/v201509/ad_customizer_feed_service.rb +0 -0
  26. data/lib/adwords_api/v201509/ad_customizer_feed_service_registry.rb +0 -0
  27. data/lib/adwords_api/v201509/ad_group_ad_service.rb +0 -0
  28. data/lib/adwords_api/v201509/ad_group_ad_service_registry.rb +0 -0
  29. data/lib/adwords_api/v201509/ad_group_bid_modifier_service.rb +0 -0
  30. data/lib/adwords_api/v201509/ad_group_bid_modifier_service_registry.rb +0 -0
  31. data/lib/adwords_api/v201509/ad_group_criterion_service.rb +0 -0
  32. data/lib/adwords_api/v201509/ad_group_criterion_service_registry.rb +0 -0
  33. data/lib/adwords_api/v201509/ad_group_extension_setting_service.rb +0 -0
  34. data/lib/adwords_api/v201509/ad_group_extension_setting_service_registry.rb +0 -0
  35. data/lib/adwords_api/v201509/ad_group_feed_service.rb +0 -0
  36. data/lib/adwords_api/v201509/ad_group_feed_service_registry.rb +0 -0
  37. data/lib/adwords_api/v201509/ad_group_service.rb +0 -0
  38. data/lib/adwords_api/v201509/ad_group_service_registry.rb +0 -0
  39. data/lib/adwords_api/v201509/ad_param_service.rb +0 -0
  40. data/lib/adwords_api/v201509/ad_param_service_registry.rb +0 -0
  41. data/lib/adwords_api/v201509/adwords_user_list_service.rb +0 -0
  42. data/lib/adwords_api/v201509/adwords_user_list_service_registry.rb +0 -0
  43. data/lib/adwords_api/v201509/batch_job_service.rb +0 -0
  44. data/lib/adwords_api/v201509/batch_job_service_registry.rb +0 -0
  45. data/lib/adwords_api/v201509/bidding_strategy_service.rb +0 -0
  46. data/lib/adwords_api/v201509/bidding_strategy_service_registry.rb +0 -0
  47. data/lib/adwords_api/v201509/budget_order_service.rb +0 -0
  48. data/lib/adwords_api/v201509/budget_order_service_registry.rb +0 -0
  49. data/lib/adwords_api/v201509/budget_service.rb +0 -0
  50. data/lib/adwords_api/v201509/budget_service_registry.rb +0 -0
  51. data/lib/adwords_api/v201509/campaign_criterion_service.rb +0 -0
  52. data/lib/adwords_api/v201509/campaign_criterion_service_registry.rb +0 -0
  53. data/lib/adwords_api/v201509/campaign_extension_setting_service.rb +0 -0
  54. data/lib/adwords_api/v201509/campaign_extension_setting_service_registry.rb +0 -0
  55. data/lib/adwords_api/v201509/campaign_feed_service.rb +0 -0
  56. data/lib/adwords_api/v201509/campaign_feed_service_registry.rb +0 -0
  57. data/lib/adwords_api/v201509/campaign_service.rb +0 -0
  58. data/lib/adwords_api/v201509/campaign_service_registry.rb +0 -0
  59. data/lib/adwords_api/v201509/campaign_shared_set_service.rb +0 -0
  60. data/lib/adwords_api/v201509/campaign_shared_set_service_registry.rb +0 -0
  61. data/lib/adwords_api/v201509/constant_data_service.rb +0 -0
  62. data/lib/adwords_api/v201509/constant_data_service_registry.rb +0 -0
  63. data/lib/adwords_api/v201509/conversion_tracker_service.rb +0 -0
  64. data/lib/adwords_api/v201509/conversion_tracker_service_registry.rb +0 -0
  65. data/lib/adwords_api/v201509/customer_extension_setting_service.rb +0 -0
  66. data/lib/adwords_api/v201509/customer_extension_setting_service_registry.rb +0 -0
  67. data/lib/adwords_api/v201509/customer_feed_service.rb +0 -0
  68. data/lib/adwords_api/v201509/customer_feed_service_registry.rb +0 -0
  69. data/lib/adwords_api/v201509/customer_service.rb +0 -0
  70. data/lib/adwords_api/v201509/customer_service_registry.rb +0 -0
  71. data/lib/adwords_api/v201509/customer_sync_service.rb +0 -0
  72. data/lib/adwords_api/v201509/customer_sync_service_registry.rb +0 -0
  73. data/lib/adwords_api/v201509/data_service.rb +0 -0
  74. data/lib/adwords_api/v201509/data_service_registry.rb +0 -0
  75. data/lib/adwords_api/v201509/experiment_service.rb +0 -0
  76. data/lib/adwords_api/v201509/experiment_service_registry.rb +0 -0
  77. data/lib/adwords_api/v201509/feed_item_service.rb +0 -0
  78. data/lib/adwords_api/v201509/feed_item_service_registry.rb +0 -0
  79. data/lib/adwords_api/v201509/feed_mapping_service.rb +0 -0
  80. data/lib/adwords_api/v201509/feed_mapping_service_registry.rb +0 -0
  81. data/lib/adwords_api/v201509/feed_service.rb +0 -0
  82. data/lib/adwords_api/v201509/feed_service_registry.rb +0 -0
  83. data/lib/adwords_api/v201509/label_service.rb +0 -0
  84. data/lib/adwords_api/v201509/label_service_registry.rb +0 -0
  85. data/lib/adwords_api/v201509/location_criterion_service.rb +0 -0
  86. data/lib/adwords_api/v201509/location_criterion_service_registry.rb +0 -0
  87. data/lib/adwords_api/v201509/managed_customer_service.rb +0 -0
  88. data/lib/adwords_api/v201509/managed_customer_service_registry.rb +0 -0
  89. data/lib/adwords_api/v201509/media_service.rb +0 -0
  90. data/lib/adwords_api/v201509/media_service_registry.rb +0 -0
  91. data/lib/adwords_api/v201509/mutate_job_service.rb +0 -0
  92. data/lib/adwords_api/v201509/mutate_job_service_registry.rb +0 -0
  93. data/lib/adwords_api/v201509/offline_conversion_feed_service.rb +0 -0
  94. data/lib/adwords_api/v201509/offline_conversion_feed_service_registry.rb +0 -0
  95. data/lib/adwords_api/v201509/report_definition_service.rb +0 -0
  96. data/lib/adwords_api/v201509/report_definition_service_registry.rb +0 -0
  97. data/lib/adwords_api/v201509/shared_criterion_service.rb +0 -0
  98. data/lib/adwords_api/v201509/shared_criterion_service_registry.rb +0 -0
  99. data/lib/adwords_api/v201509/shared_set_service.rb +0 -0
  100. data/lib/adwords_api/v201509/shared_set_service_registry.rb +0 -0
  101. data/lib/adwords_api/v201509/targeting_idea_service.rb +0 -0
  102. data/lib/adwords_api/v201509/targeting_idea_service_registry.rb +0 -0
  103. data/lib/adwords_api/v201509/traffic_estimator_service.rb +0 -0
  104. data/lib/adwords_api/v201509/traffic_estimator_service_registry.rb +0 -0
  105. data/lib/adwords_api/v201601/account_label_service.rb +0 -0
  106. data/lib/adwords_api/v201601/account_label_service_registry.rb +0 -0
  107. data/lib/adwords_api/v201601/ad_customizer_feed_service.rb +0 -0
  108. data/lib/adwords_api/v201601/ad_customizer_feed_service_registry.rb +0 -0
  109. data/lib/adwords_api/v201601/ad_group_ad_service.rb +0 -0
  110. data/lib/adwords_api/v201601/ad_group_ad_service_registry.rb +0 -0
  111. data/lib/adwords_api/v201601/ad_group_bid_modifier_service.rb +0 -0
  112. data/lib/adwords_api/v201601/ad_group_bid_modifier_service_registry.rb +0 -0
  113. data/lib/adwords_api/v201601/ad_group_criterion_service.rb +0 -0
  114. data/lib/adwords_api/v201601/ad_group_criterion_service_registry.rb +0 -0
  115. data/lib/adwords_api/v201601/ad_group_extension_setting_service.rb +0 -0
  116. data/lib/adwords_api/v201601/ad_group_extension_setting_service_registry.rb +0 -0
  117. data/lib/adwords_api/v201601/ad_group_feed_service.rb +0 -0
  118. data/lib/adwords_api/v201601/ad_group_feed_service_registry.rb +0 -0
  119. data/lib/adwords_api/v201601/ad_group_service.rb +0 -0
  120. data/lib/adwords_api/v201601/ad_group_service_registry.rb +0 -0
  121. data/lib/adwords_api/v201601/ad_param_service.rb +0 -0
  122. data/lib/adwords_api/v201601/ad_param_service_registry.rb +0 -0
  123. data/lib/adwords_api/v201601/adwords_user_list_service.rb +0 -0
  124. data/lib/adwords_api/v201601/adwords_user_list_service_registry.rb +0 -0
  125. data/lib/adwords_api/v201601/batch_job_service.rb +0 -0
  126. data/lib/adwords_api/v201601/batch_job_service_registry.rb +0 -0
  127. data/lib/adwords_api/v201601/bidding_strategy_service.rb +0 -0
  128. data/lib/adwords_api/v201601/bidding_strategy_service_registry.rb +0 -0
  129. data/lib/adwords_api/v201601/budget_order_service.rb +0 -0
  130. data/lib/adwords_api/v201601/budget_order_service_registry.rb +0 -0
  131. data/lib/adwords_api/v201601/budget_service.rb +0 -0
  132. data/lib/adwords_api/v201601/budget_service_registry.rb +0 -0
  133. data/lib/adwords_api/v201601/campaign_criterion_service.rb +0 -0
  134. data/lib/adwords_api/v201601/campaign_criterion_service_registry.rb +0 -0
  135. data/lib/adwords_api/v201601/campaign_extension_setting_service.rb +0 -0
  136. data/lib/adwords_api/v201601/campaign_extension_setting_service_registry.rb +0 -0
  137. data/lib/adwords_api/v201601/campaign_feed_service.rb +0 -0
  138. data/lib/adwords_api/v201601/campaign_feed_service_registry.rb +0 -0
  139. data/lib/adwords_api/v201601/campaign_service.rb +0 -0
  140. data/lib/adwords_api/v201601/campaign_service_registry.rb +0 -0
  141. data/lib/adwords_api/v201601/campaign_shared_set_service.rb +0 -0
  142. data/lib/adwords_api/v201601/campaign_shared_set_service_registry.rb +0 -0
  143. data/lib/adwords_api/v201601/constant_data_service.rb +0 -0
  144. data/lib/adwords_api/v201601/constant_data_service_registry.rb +0 -0
  145. data/lib/adwords_api/v201601/conversion_tracker_service.rb +0 -0
  146. data/lib/adwords_api/v201601/conversion_tracker_service_registry.rb +0 -0
  147. data/lib/adwords_api/v201601/customer_extension_setting_service.rb +0 -0
  148. data/lib/adwords_api/v201601/customer_extension_setting_service_registry.rb +0 -0
  149. data/lib/adwords_api/v201601/customer_feed_service.rb +0 -0
  150. data/lib/adwords_api/v201601/customer_feed_service_registry.rb +0 -0
  151. data/lib/adwords_api/v201601/customer_service.rb +0 -0
  152. data/lib/adwords_api/v201601/customer_service_registry.rb +0 -0
  153. data/lib/adwords_api/v201601/customer_sync_service.rb +0 -0
  154. data/lib/adwords_api/v201601/customer_sync_service_registry.rb +0 -0
  155. data/lib/adwords_api/v201601/data_service.rb +0 -0
  156. data/lib/adwords_api/v201601/data_service_registry.rb +0 -0
  157. data/lib/adwords_api/v201601/experiment_service.rb +0 -0
  158. data/lib/adwords_api/v201601/experiment_service_registry.rb +0 -0
  159. data/lib/adwords_api/v201601/feed_item_service.rb +0 -0
  160. data/lib/adwords_api/v201601/feed_item_service_registry.rb +0 -0
  161. data/lib/adwords_api/v201601/feed_mapping_service.rb +0 -0
  162. data/lib/adwords_api/v201601/feed_mapping_service_registry.rb +0 -0
  163. data/lib/adwords_api/v201601/feed_service.rb +0 -0
  164. data/lib/adwords_api/v201601/feed_service_registry.rb +0 -0
  165. data/lib/adwords_api/v201601/label_service.rb +0 -0
  166. data/lib/adwords_api/v201601/label_service_registry.rb +0 -0
  167. data/lib/adwords_api/v201601/location_criterion_service.rb +0 -0
  168. data/lib/adwords_api/v201601/location_criterion_service_registry.rb +0 -0
  169. data/lib/adwords_api/v201601/managed_customer_service.rb +0 -0
  170. data/lib/adwords_api/v201601/managed_customer_service_registry.rb +0 -0
  171. data/lib/adwords_api/v201601/media_service.rb +0 -0
  172. data/lib/adwords_api/v201601/media_service_registry.rb +0 -0
  173. data/lib/adwords_api/v201601/mutate_job_service.rb +0 -0
  174. data/lib/adwords_api/v201601/mutate_job_service_registry.rb +0 -0
  175. data/lib/adwords_api/v201601/offline_conversion_feed_service.rb +0 -0
  176. data/lib/adwords_api/v201601/offline_conversion_feed_service_registry.rb +0 -0
  177. data/lib/adwords_api/v201601/report_definition_service.rb +0 -0
  178. data/lib/adwords_api/v201601/report_definition_service_registry.rb +0 -0
  179. data/lib/adwords_api/v201601/shared_criterion_service.rb +0 -0
  180. data/lib/adwords_api/v201601/shared_criterion_service_registry.rb +0 -0
  181. data/lib/adwords_api/v201601/shared_set_service.rb +0 -0
  182. data/lib/adwords_api/v201601/shared_set_service_registry.rb +0 -0
  183. data/lib/adwords_api/v201601/targeting_idea_service.rb +0 -0
  184. data/lib/adwords_api/v201601/targeting_idea_service_registry.rb +0 -0
  185. data/lib/adwords_api/v201601/traffic_estimator_service.rb +0 -0
  186. data/lib/adwords_api/v201601/traffic_estimator_service_registry.rb +0 -0
  187. data/lib/adwords_api/v201603/account_label_service.rb +0 -0
  188. data/lib/adwords_api/v201603/account_label_service_registry.rb +0 -0
  189. data/lib/adwords_api/v201603/ad_customizer_feed_service.rb +0 -0
  190. data/lib/adwords_api/v201603/ad_customizer_feed_service_registry.rb +0 -0
  191. data/lib/adwords_api/v201603/ad_group_ad_service.rb +0 -0
  192. data/lib/adwords_api/v201603/ad_group_ad_service_registry.rb +0 -0
  193. data/lib/adwords_api/v201603/ad_group_bid_modifier_service.rb +0 -0
  194. data/lib/adwords_api/v201603/ad_group_bid_modifier_service_registry.rb +0 -0
  195. data/lib/adwords_api/v201603/ad_group_criterion_service.rb +0 -0
  196. data/lib/adwords_api/v201603/ad_group_criterion_service_registry.rb +0 -0
  197. data/lib/adwords_api/v201603/ad_group_extension_setting_service.rb +0 -0
  198. data/lib/adwords_api/v201603/ad_group_extension_setting_service_registry.rb +0 -0
  199. data/lib/adwords_api/v201603/ad_group_feed_service.rb +0 -0
  200. data/lib/adwords_api/v201603/ad_group_feed_service_registry.rb +0 -0
  201. data/lib/adwords_api/v201603/ad_group_service.rb +0 -0
  202. data/lib/adwords_api/v201603/ad_group_service_registry.rb +0 -0
  203. data/lib/adwords_api/v201603/ad_param_service.rb +0 -0
  204. data/lib/adwords_api/v201603/ad_param_service_registry.rb +0 -0
  205. data/lib/adwords_api/v201603/adwords_user_list_service.rb +0 -0
  206. data/lib/adwords_api/v201603/adwords_user_list_service_registry.rb +0 -0
  207. data/lib/adwords_api/v201603/batch_job_service.rb +0 -0
  208. data/lib/adwords_api/v201603/batch_job_service_registry.rb +0 -0
  209. data/lib/adwords_api/v201603/bidding_strategy_service.rb +0 -0
  210. data/lib/adwords_api/v201603/bidding_strategy_service_registry.rb +0 -0
  211. data/lib/adwords_api/v201603/budget_order_service.rb +0 -0
  212. data/lib/adwords_api/v201603/budget_order_service_registry.rb +0 -0
  213. data/lib/adwords_api/v201603/budget_service.rb +0 -0
  214. data/lib/adwords_api/v201603/budget_service_registry.rb +0 -0
  215. data/lib/adwords_api/v201603/campaign_criterion_service.rb +0 -0
  216. data/lib/adwords_api/v201603/campaign_criterion_service_registry.rb +0 -0
  217. data/lib/adwords_api/v201603/campaign_extension_setting_service.rb +0 -0
  218. data/lib/adwords_api/v201603/campaign_extension_setting_service_registry.rb +0 -0
  219. data/lib/adwords_api/v201603/campaign_feed_service.rb +0 -0
  220. data/lib/adwords_api/v201603/campaign_feed_service_registry.rb +0 -0
  221. data/lib/adwords_api/v201603/campaign_service.rb +0 -0
  222. data/lib/adwords_api/v201603/campaign_service_registry.rb +0 -0
  223. data/lib/adwords_api/v201603/campaign_shared_set_service.rb +0 -0
  224. data/lib/adwords_api/v201603/campaign_shared_set_service_registry.rb +0 -0
  225. data/lib/adwords_api/v201603/constant_data_service.rb +0 -0
  226. data/lib/adwords_api/v201603/constant_data_service_registry.rb +0 -0
  227. data/lib/adwords_api/v201603/conversion_tracker_service.rb +0 -0
  228. data/lib/adwords_api/v201603/conversion_tracker_service_registry.rb +0 -0
  229. data/lib/adwords_api/v201603/customer_extension_setting_service.rb +0 -0
  230. data/lib/adwords_api/v201603/customer_extension_setting_service_registry.rb +0 -0
  231. data/lib/adwords_api/v201603/customer_feed_service.rb +0 -0
  232. data/lib/adwords_api/v201603/customer_feed_service_registry.rb +0 -0
  233. data/lib/adwords_api/v201603/customer_service.rb +0 -0
  234. data/lib/adwords_api/v201603/customer_service_registry.rb +0 -0
  235. data/lib/adwords_api/v201603/customer_sync_service.rb +0 -0
  236. data/lib/adwords_api/v201603/customer_sync_service_registry.rb +0 -0
  237. data/lib/adwords_api/v201603/data_service.rb +0 -0
  238. data/lib/adwords_api/v201603/data_service_registry.rb +0 -0
  239. data/lib/adwords_api/v201603/draft_async_error_service.rb +0 -0
  240. data/lib/adwords_api/v201603/draft_async_error_service_registry.rb +0 -0
  241. data/lib/adwords_api/v201603/draft_service.rb +0 -0
  242. data/lib/adwords_api/v201603/draft_service_registry.rb +0 -0
  243. data/lib/adwords_api/v201603/experiment_service.rb +0 -0
  244. data/lib/adwords_api/v201603/experiment_service_registry.rb +0 -0
  245. data/lib/adwords_api/v201603/feed_item_service.rb +0 -0
  246. data/lib/adwords_api/v201603/feed_item_service_registry.rb +0 -0
  247. data/lib/adwords_api/v201603/feed_mapping_service.rb +0 -0
  248. data/lib/adwords_api/v201603/feed_mapping_service_registry.rb +0 -0
  249. data/lib/adwords_api/v201603/feed_service.rb +0 -0
  250. data/lib/adwords_api/v201603/feed_service_registry.rb +0 -0
  251. data/lib/adwords_api/v201603/label_service.rb +0 -0
  252. data/lib/adwords_api/v201603/label_service_registry.rb +0 -0
  253. data/lib/adwords_api/v201603/location_criterion_service.rb +0 -0
  254. data/lib/adwords_api/v201603/location_criterion_service_registry.rb +0 -0
  255. data/lib/adwords_api/v201603/managed_customer_service.rb +0 -0
  256. data/lib/adwords_api/v201603/managed_customer_service_registry.rb +0 -0
  257. data/lib/adwords_api/v201603/media_service.rb +0 -0
  258. data/lib/adwords_api/v201603/media_service_registry.rb +0 -0
  259. data/lib/adwords_api/v201603/offline_conversion_feed_service.rb +0 -0
  260. data/lib/adwords_api/v201603/offline_conversion_feed_service_registry.rb +0 -0
  261. data/lib/adwords_api/v201603/report_definition_service.rb +0 -0
  262. data/lib/adwords_api/v201603/report_definition_service_registry.rb +0 -0
  263. data/lib/adwords_api/v201603/shared_criterion_service.rb +0 -0
  264. data/lib/adwords_api/v201603/shared_criterion_service_registry.rb +0 -0
  265. data/lib/adwords_api/v201603/shared_set_service.rb +0 -0
  266. data/lib/adwords_api/v201603/shared_set_service_registry.rb +0 -0
  267. data/lib/adwords_api/v201603/targeting_idea_service.rb +0 -0
  268. data/lib/adwords_api/v201603/targeting_idea_service_registry.rb +0 -0
  269. data/lib/adwords_api/v201603/traffic_estimator_service.rb +0 -0
  270. data/lib/adwords_api/v201603/traffic_estimator_service_registry.rb +0 -0
  271. data/lib/adwords_api/v201603/trial_async_error_service.rb +0 -0
  272. data/lib/adwords_api/v201603/trial_async_error_service_registry.rb +0 -0
  273. data/lib/adwords_api/v201603/trial_service.rb +0 -0
  274. data/lib/adwords_api/v201603/trial_service_registry.rb +0 -0
  275. data/lib/adwords_api/version.rb +1 -1
  276. data/test/adwords_api/test_adwords_api.rb +1 -1
  277. data/test/adwords_api/test_api_config.rb +8 -8
  278. data/test/adwords_api/test_batch_job_utils.rb +0 -0
  279. data/test/adwords_api/test_choices.rb +2 -2
  280. data/test/adwords_api/test_report_utils.rb +1 -1
  281. data/test/templates/v201509/basic_operations_get_campaigns.def +0 -0
  282. data/test/templates/v201509/misc_use_oauth2_service_account.def +0 -0
  283. metadata +7 -161
  284. data/examples/v201506/account_management/create_account.rb +0 -88
  285. data/examples/v201506/account_management/get_account_changes.rb +0 -139
  286. data/examples/v201506/account_management/get_account_hierarchy.rb +0 -94
  287. data/examples/v201506/advanced_operations/add_ad_customizers.rb +0 -184
  288. data/examples/v201506/advanced_operations/add_ad_group_bid_modifier.rb +0 -101
  289. data/examples/v201506/advanced_operations/add_click_to_download_ad.rb +0 -133
  290. data/examples/v201506/advanced_operations/add_text_ad_with_upgraded_urls.rb +0 -134
  291. data/examples/v201506/advanced_operations/create_and_attach_shared_keyword_set.rb +0 -141
  292. data/examples/v201506/advanced_operations/find_and_remove_criteria_from_shared_set.rb +0 -174
  293. data/examples/v201506/advanced_operations/get_ad_group_bid_modifiers.rb +0 -102
  294. data/examples/v201506/advanced_operations/upload_offline_conversions.rb +0 -113
  295. data/examples/v201506/advanced_operations/use_shared_bidding_strategy.rb +0 -147
  296. data/examples/v201506/basic_operations/add_ad_groups.rb +0 -140
  297. data/examples/v201506/basic_operations/add_campaigns.rb +0 -139
  298. data/examples/v201506/basic_operations/add_keywords.rb +0 -114
  299. data/examples/v201506/basic_operations/add_text_ads.rb +0 -109
  300. data/examples/v201506/basic_operations/get_ad_groups.rb +0 -102
  301. data/examples/v201506/basic_operations/get_campaigns.rb +0 -97
  302. data/examples/v201506/basic_operations/get_campaigns_with_awql.rb +0 -89
  303. data/examples/v201506/basic_operations/get_keywords.rb +0 -109
  304. data/examples/v201506/basic_operations/get_text_ads.rb +0 -110
  305. data/examples/v201506/basic_operations/pause_ad.rb +0 -88
  306. data/examples/v201506/basic_operations/remove_ad.rb +0 -89
  307. data/examples/v201506/basic_operations/remove_ad_group.rb +0 -85
  308. data/examples/v201506/basic_operations/remove_campaign.rb +0 -87
  309. data/examples/v201506/basic_operations/remove_keyword.rb +0 -94
  310. data/examples/v201506/basic_operations/update_ad_group.rb +0 -85
  311. data/examples/v201506/basic_operations/update_campaign.rb +0 -86
  312. data/examples/v201506/basic_operations/update_keyword.rb +0 -106
  313. data/examples/v201506/campaign_management/add_campaign_labels.rb +0 -82
  314. data/examples/v201506/campaign_management/add_experiment.rb +0 -162
  315. data/examples/v201506/campaign_management/add_keywords_in_bulk.rb +0 -153
  316. data/examples/v201506/campaign_management/get_all_disapproved_ads.rb +0 -97
  317. data/examples/v201506/campaign_management/get_all_disapproved_ads_with_awql.rb +0 -89
  318. data/examples/v201506/campaign_management/get_campaigns_by_label.rb +0 -108
  319. data/examples/v201506/campaign_management/promote_experiment.rb +0 -81
  320. data/examples/v201506/campaign_management/set_ad_parameters.rb +0 -118
  321. data/examples/v201506/campaign_management/set_criterion_bid_modifier.rb +0 -104
  322. data/examples/v201506/campaign_management/validate_text_ad.rb +0 -110
  323. data/examples/v201506/error_handling/handle_partial_failures.rb +0 -130
  324. data/examples/v201506/error_handling/handle_policy_violation_error.rb +0 -141
  325. data/examples/v201506/extensions/add_google_my_business_location_extensions.rb +0 -186
  326. data/examples/v201506/extensions/add_site_links.rb +0 -164
  327. data/examples/v201506/extensions/add_site_links_using_feeds.rb +0 -271
  328. data/examples/v201506/migration/migrate_to_extension_settings.rb +0 -386
  329. data/examples/v201506/migration/upgrade_ad_url.rb +0 -93
  330. data/examples/v201506/misc/get_all_images_and_videos.rb +0 -104
  331. data/examples/v201506/misc/setup_oauth2.rb +0 -84
  332. data/examples/v201506/misc/upload_image.rb +0 -93
  333. data/examples/v201506/misc/use_oauth2_jwt.rb +0 -93
  334. data/examples/v201506/misc/use_runtime_config.rb +0 -92
  335. data/examples/v201506/optimization/estimate_keyword_traffic.rb +0 -146
  336. data/examples/v201506/optimization/get_keyword_bid_simulations.rb +0 -95
  337. data/examples/v201506/optimization/get_keyword_ideas.rb +0 -126
  338. data/examples/v201506/remarketing/add_audience.rb +0 -118
  339. data/examples/v201506/remarketing/add_conversion_tracker.rb +0 -100
  340. data/examples/v201506/remarketing/add_rule_based_user_lists.rb +0 -167
  341. data/examples/v201506/reporting/download_criteria_report.rb +0 -92
  342. data/examples/v201506/reporting/download_criteria_report_with_awql.rb +0 -93
  343. data/examples/v201506/reporting/get_report_fields.rb +0 -75
  344. data/examples/v201506/reporting/parallel_report_download.rb +0 -164
  345. data/examples/v201506/shopping_campaigns/add_product_partition_tree.rb +0 -267
  346. data/examples/v201506/shopping_campaigns/add_product_scope.rb +0 -129
  347. data/examples/v201506/shopping_campaigns/add_shopping_campaign.rb +0 -129
  348. data/examples/v201506/shopping_campaigns/get_product_category_taxonomy.rb +0 -115
  349. data/examples/v201506/targeting/add_campaign_targeting_criteria.rb +0 -180
  350. data/examples/v201506/targeting/add_demographic_targeting_criteria.rb +0 -112
  351. data/examples/v201506/targeting/get_campaign_targeting_criteria.rb +0 -106
  352. data/examples/v201506/targeting/get_targetable_languages_and_carriers.rb +0 -89
  353. data/examples/v201506/targeting/lookup_location.rb +0 -108
  354. data/lib/adwords_api/v201506/account_label_service.rb +0 -46
  355. data/lib/adwords_api/v201506/account_label_service_registry.rb +0 -46
  356. data/lib/adwords_api/v201506/ad_customizer_feed_service.rb +0 -46
  357. data/lib/adwords_api/v201506/ad_customizer_feed_service_registry.rb +0 -46
  358. data/lib/adwords_api/v201506/ad_group_ad_service.rb +0 -70
  359. data/lib/adwords_api/v201506/ad_group_ad_service_registry.rb +0 -46
  360. data/lib/adwords_api/v201506/ad_group_bid_modifier_service.rb +0 -54
  361. data/lib/adwords_api/v201506/ad_group_bid_modifier_service_registry.rb +0 -46
  362. data/lib/adwords_api/v201506/ad_group_criterion_service.rb +0 -62
  363. data/lib/adwords_api/v201506/ad_group_criterion_service_registry.rb +0 -46
  364. data/lib/adwords_api/v201506/ad_group_extension_setting_service.rb +0 -54
  365. data/lib/adwords_api/v201506/ad_group_extension_setting_service_registry.rb +0 -46
  366. data/lib/adwords_api/v201506/ad_group_feed_service.rb +0 -54
  367. data/lib/adwords_api/v201506/ad_group_feed_service_registry.rb +0 -46
  368. data/lib/adwords_api/v201506/ad_group_service.rb +0 -62
  369. data/lib/adwords_api/v201506/ad_group_service_registry.rb +0 -46
  370. data/lib/adwords_api/v201506/ad_param_service.rb +0 -46
  371. data/lib/adwords_api/v201506/ad_param_service_registry.rb +0 -46
  372. data/lib/adwords_api/v201506/adwords_user_list_service.rb +0 -46
  373. data/lib/adwords_api/v201506/adwords_user_list_service_registry.rb +0 -46
  374. data/lib/adwords_api/v201506/bidding_strategy_service.rb +0 -54
  375. data/lib/adwords_api/v201506/bidding_strategy_service_registry.rb +0 -46
  376. data/lib/adwords_api/v201506/budget_order_service.rb +0 -54
  377. data/lib/adwords_api/v201506/budget_order_service_registry.rb +0 -46
  378. data/lib/adwords_api/v201506/budget_service.rb +0 -54
  379. data/lib/adwords_api/v201506/budget_service_registry.rb +0 -46
  380. data/lib/adwords_api/v201506/campaign_criterion_service.rb +0 -54
  381. data/lib/adwords_api/v201506/campaign_criterion_service_registry.rb +0 -46
  382. data/lib/adwords_api/v201506/campaign_extension_setting_service.rb +0 -54
  383. data/lib/adwords_api/v201506/campaign_extension_setting_service_registry.rb +0 -46
  384. data/lib/adwords_api/v201506/campaign_feed_service.rb +0 -54
  385. data/lib/adwords_api/v201506/campaign_feed_service_registry.rb +0 -46
  386. data/lib/adwords_api/v201506/campaign_service.rb +0 -62
  387. data/lib/adwords_api/v201506/campaign_service_registry.rb +0 -46
  388. data/lib/adwords_api/v201506/campaign_shared_set_service.rb +0 -54
  389. data/lib/adwords_api/v201506/campaign_shared_set_service_registry.rb +0 -46
  390. data/lib/adwords_api/v201506/constant_data_service.rb +0 -102
  391. data/lib/adwords_api/v201506/constant_data_service_registry.rb +0 -46
  392. data/lib/adwords_api/v201506/conversion_tracker_service.rb +0 -54
  393. data/lib/adwords_api/v201506/conversion_tracker_service_registry.rb +0 -46
  394. data/lib/adwords_api/v201506/customer_extension_setting_service.rb +0 -54
  395. data/lib/adwords_api/v201506/customer_extension_setting_service_registry.rb +0 -46
  396. data/lib/adwords_api/v201506/customer_feed_service.rb +0 -54
  397. data/lib/adwords_api/v201506/customer_feed_service_registry.rb +0 -46
  398. data/lib/adwords_api/v201506/customer_service.rb +0 -46
  399. data/lib/adwords_api/v201506/customer_service_registry.rb +0 -46
  400. data/lib/adwords_api/v201506/customer_sync_service.rb +0 -38
  401. data/lib/adwords_api/v201506/customer_sync_service_registry.rb +0 -47
  402. data/lib/adwords_api/v201506/data_service.rb +0 -78
  403. data/lib/adwords_api/v201506/data_service_registry.rb +0 -46
  404. data/lib/adwords_api/v201506/experiment_service.rb +0 -46
  405. data/lib/adwords_api/v201506/experiment_service_registry.rb +0 -46
  406. data/lib/adwords_api/v201506/feed_item_service.rb +0 -54
  407. data/lib/adwords_api/v201506/feed_item_service_registry.rb +0 -46
  408. data/lib/adwords_api/v201506/feed_mapping_service.rb +0 -54
  409. data/lib/adwords_api/v201506/feed_mapping_service_registry.rb +0 -46
  410. data/lib/adwords_api/v201506/feed_service.rb +0 -54
  411. data/lib/adwords_api/v201506/feed_service_registry.rb +0 -46
  412. data/lib/adwords_api/v201506/geo_location_service.rb +0 -38
  413. data/lib/adwords_api/v201506/geo_location_service_registry.rb +0 -46
  414. data/lib/adwords_api/v201506/label_service.rb +0 -54
  415. data/lib/adwords_api/v201506/label_service_registry.rb +0 -46
  416. data/lib/adwords_api/v201506/location_criterion_service.rb +0 -46
  417. data/lib/adwords_api/v201506/location_criterion_service_registry.rb +0 -46
  418. data/lib/adwords_api/v201506/managed_customer_service.rb +0 -78
  419. data/lib/adwords_api/v201506/managed_customer_service_registry.rb +0 -46
  420. data/lib/adwords_api/v201506/media_service.rb +0 -54
  421. data/lib/adwords_api/v201506/media_service_registry.rb +0 -46
  422. data/lib/adwords_api/v201506/mutate_job_service.rb +0 -54
  423. data/lib/adwords_api/v201506/mutate_job_service_registry.rb +0 -46
  424. data/lib/adwords_api/v201506/offline_conversion_feed_service.rb +0 -38
  425. data/lib/adwords_api/v201506/offline_conversion_feed_service_registry.rb +0 -46
  426. data/lib/adwords_api/v201506/report_definition_service.rb +0 -38
  427. data/lib/adwords_api/v201506/report_definition_service_registry.rb +0 -46
  428. data/lib/adwords_api/v201506/shared_criterion_service.rb +0 -54
  429. data/lib/adwords_api/v201506/shared_criterion_service_registry.rb +0 -46
  430. data/lib/adwords_api/v201506/shared_set_service.rb +0 -54
  431. data/lib/adwords_api/v201506/shared_set_service_registry.rb +0 -46
  432. data/lib/adwords_api/v201506/targeting_idea_service.rb +0 -38
  433. data/lib/adwords_api/v201506/targeting_idea_service_registry.rb +0 -46
  434. data/lib/adwords_api/v201506/traffic_estimator_service.rb +0 -38
  435. data/lib/adwords_api/v201506/traffic_estimator_service_registry.rb +0 -46
  436. data/test/templates/v201506/basic_operations_get_campaigns.def +0 -116
  437. data/test/templates/v201506/misc_use_oauth2_service_account.def +0 -131
@@ -1,75 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
5
- #
6
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15
- # implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- # This example gets the list of possible report fields for a report type.
20
-
21
- require 'adwords_api'
22
-
23
- def get_report_fields(report_type)
24
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
25
- # when called without parameters.
26
- adwords = AdwordsApi::Api.new
27
-
28
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
29
- # the configuration file or provide your own logger:
30
- # adwords.logger = Logger.new('adwords_xml.log')
31
-
32
- report_def_srv = adwords.service(:ReportDefinitionService, API_VERSION)
33
-
34
- # Get report fields.
35
- fields = report_def_srv.get_report_fields(report_type)
36
- if fields
37
- puts "Report type '%s' contains the following fields:" % report_type
38
- fields.each do |field|
39
- puts ' - %s (%s)' % [field[:field_name], field[:field_type]]
40
- puts ' := [%s]' % field[:enum_values].join(', ') if field[:enum_values]
41
- end
42
- end
43
- end
44
-
45
- if __FILE__ == $0
46
- API_VERSION = :v201506
47
-
48
- begin
49
- report_type = 'INSERT_REPORT_TYPE_HERE'
50
- get_report_fields(report_type)
51
-
52
- # Authorization error.
53
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
54
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
55
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
56
- "to retrieve and store OAuth2 tokens."
57
- puts "See this wiki page for more details:\n\n " +
58
- 'https://github.com/googleads/google-api-ads-ruby/wiki/OAuth2'
59
-
60
- # HTTP errors.
61
- rescue AdsCommon::Errors::HttpError => e
62
- puts "HTTP Error: %s" % e
63
-
64
- # API errors.
65
- rescue AdwordsApi::Errors::ApiException => e
66
- puts "Message: %s" % e.message
67
- puts 'Errors:'
68
- e.errors.each_with_index do |error, index|
69
- puts "\tError [%d]:" % (index + 1)
70
- error.each do |field, value|
71
- puts "\t\t%s: %s" % [field, value]
72
- end
73
- end
74
- end
75
- end
@@ -1,164 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
5
- #
6
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15
- # implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- # This example gets and downloads an Ad Hoc report from a XML report definition
20
- # for all accounts in hierarchy in multiple parallel threads. This example
21
- # needs to be run against an AdWords manager account.
22
-
23
- require 'thread'
24
-
25
- require 'adwords_api'
26
- require 'adwords_api/utils'
27
-
28
- def parallel_report_download()
29
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
30
- # when called without parameters.
31
- adwords = AdwordsApi::Api.new
32
-
33
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
34
- # the configuration file or provide your own logger:
35
- # adwords.logger = Logger.new('adwords_xml.log')
36
-
37
- # Determine list of customer IDs to retrieve report for. For this example we
38
- # will use ManagedCustomerService to get all IDs in hierarchy.
39
-
40
- managed_customer_srv = adwords.service(:ManagedCustomerService, API_VERSION)
41
-
42
- # Get the account hierarchy for this account.
43
- selector = {:fields => ['CustomerId']}
44
-
45
- graph = managed_customer_srv.get(selector)
46
-
47
- # Using queue to balance load between threads.
48
- queue = Queue.new()
49
-
50
- if graph and graph[:entries] and !graph[:entries].empty?
51
- graph[:entries].each {|account| queue << account[:customer_id]}
52
- else
53
- raise StandardError, 'Can not retrieve any customer ID'
54
- end
55
-
56
- # Get report utilities for the version.
57
- report_utils = adwords.report_utils(API_VERSION)
58
-
59
- # Define report definition. You can also pass your own XML text as a string.
60
- report_definition = {
61
- :selector => {
62
- :fields => ['CampaignId', 'AdGroupId', 'Impressions', 'Clicks', 'Cost'],
63
- # Predicates are optional.
64
- :predicates => {
65
- :field => 'AdGroupStatus',
66
- :operator => 'IN',
67
- :values => ['ENABLED', 'PAUSED']
68
- }
69
- },
70
- :report_name => 'Custom ADGROUP_PERFORMANCE_REPORT',
71
- :report_type => 'ADGROUP_PERFORMANCE_REPORT',
72
- :download_format => 'CSV',
73
- :date_range_type => 'LAST_7_DAYS'
74
- }
75
-
76
- puts 'Retrieving %d reports with %d threads:' % [queue.size, THREADS]
77
-
78
- reports_succeeded = Queue.new()
79
- reports_failed = Queue.new()
80
-
81
- # Creating a mutex to control access to the queue.
82
- queue_mutex = Mutex.new
83
-
84
- # Start all the threads.
85
- threads = (1..THREADS).map do |thread_id|
86
- Thread.new(report_definition) do |local_def|
87
- cid = nil
88
- begin
89
- cid = queue_mutex.synchronize {(queue.empty?) ? nil : queue.pop(true)}
90
- if cid
91
- retry_count = 0
92
- file_name = 'adgroup_%010d.csv' % cid
93
- puts "[%2d/%d] Loading report for customer ID %s into '%s'..." %
94
- [thread_id, retry_count,
95
- AdwordsApi::Utils.format_id(cid), file_name]
96
- begin
97
- report_utils.download_report_as_file(local_def, file_name, cid)
98
- reports_succeeded << {:cid => cid, :file_name => file_name}
99
- rescue AdwordsApi::Errors::ReportError => e
100
- if e.http_code == 500 && retry_count < MAX_RETRIES
101
- retry_count += 1
102
- sleep(retry_count * BACKOFF_FACTOR)
103
- retry
104
- else
105
- puts(('Report failed for customer ID %s with code %d after %d ' +
106
- 'retries.') % [cid, e.http_code, retry_count + 1])
107
- reports_failed <<
108
- {:cid => cid, :http_code => e.http_code, :message => e.message}
109
- end
110
- end
111
- end
112
- end while (cid != nil)
113
- end
114
- end
115
-
116
- # Wait for all threads to finish.
117
- threads.each { |aThread| aThread.join }
118
-
119
- puts 'Download completed, results:'
120
- puts 'Successful reports:'
121
- while !reports_succeeded.empty? do
122
- result = reports_succeeded.pop()
123
- puts "\tClient ID %s => '%s'" %
124
- [AdwordsApi::Utils.format_id(result[:cid]), result[:file_name]]
125
- end
126
- puts 'Failed reports:'
127
- while !reports_failed.empty? do
128
- result = reports_failed.pop()
129
- puts "\tClient ID %s => Code: %d, Message: '%s'" %
130
- [AdwordsApi::Utils.format_id(result[:cid]),
131
- result[:http_code], result[:message]]
132
- end
133
- puts 'End of results.'
134
- end
135
-
136
- if __FILE__ == $0
137
- API_VERSION = :v201506
138
- # Number of parallel threads to spawn.
139
- THREADS = 10
140
- # Maximum number of retries for 500 errors.
141
- MAX_RETRIES = 5
142
- # Timeout between retries in seconds.
143
- BACKOFF_FACTOR = 5
144
-
145
- begin
146
- parallel_report_download()
147
-
148
- # Authorization error.
149
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
150
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
151
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
152
- "to retrieve and store OAuth2 tokens."
153
- puts "See this wiki page for more details:\n\n " +
154
- 'https://github.com/googleads/google-api-ads-ruby/wiki/OAuth2'
155
-
156
- # HTTP errors.
157
- rescue AdsCommon::Errors::HttpError => e
158
- puts 'HTTP Error: %s' % e
159
-
160
- # API errors.
161
- rescue AdwordsApi::Errors::ReportError => e
162
- puts 'Reporting Error: %s' % e.message
163
- end
164
- end
@@ -1,267 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Copyright:: Copyright 2014, Google Inc. All Rights Reserved.
5
- #
6
- # License:: Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15
- # implied.
16
- # See the License for the specific language governing permissions and
17
- # limitations under the License.
18
- #
19
- # This example creates a ProductPartition tree.
20
-
21
- require 'adwords_api'
22
-
23
- class ProductPartitionHelper
24
- attr_reader :operations
25
-
26
- def initialize(ad_group_id)
27
- # The next temporary criterion ID to be used.
28
- #
29
- # When creating our tree we need to specify the parent-child relationships
30
- # between nodes. However, until a criterion has been created on the server
31
- # we do not have a criterionId with which to refer to it.
32
- #
33
- # Instead we can specify temporary IDs that are specific to a single mutate
34
- # request. Once the criteria have been created they are assigned an ID as
35
- # normal and the temporary ID will no longer refer to it.
36
- #
37
- # A valid temporary ID is any negative integer.
38
- @next_id = -1
39
-
40
- # The set of mutate operations needed to create the current tree.
41
- @operations = []
42
-
43
- # The ID of the AdGroup that we wish to attach the partition tree to.
44
- @ad_group_id = ad_group_id
45
- end
46
-
47
- def create_subdivision(parent = nil, value = nil)
48
- division = {
49
- :xsi_type => 'ProductPartition',
50
- :partition_type => 'SUBDIVISION',
51
- :id => @next_id
52
- }
53
-
54
- @next_id -= 1
55
-
56
- unless parent.nil? || value.nil?
57
- division[:parent_criterion_id] = parent[:id]
58
- division[:case_value] = value
59
- end
60
-
61
- ad_group_criterion = {
62
- :xsi_type => 'BiddableAdGroupCriterion',
63
- :ad_group_id => @ad_group_id,
64
- :criterion => division
65
- }
66
-
67
- create_add_operation(ad_group_criterion)
68
-
69
- return division
70
- end
71
-
72
- def create_unit(parent = nil, value = nil, bid_amount = nil)
73
- unit = {
74
- :xsi_type => 'ProductPartition',
75
- :partition_type => 'UNIT'
76
- }
77
-
78
- unless parent.nil? || value.nil?
79
- unit[:parent_criterion_id] = parent[:id]
80
- unit[:case_value] = value
81
- end
82
-
83
- ad_group_criterion = {}
84
- if bid_amount && bid_amount > 0
85
- bidding_strategy_configuration = {
86
- :bids => [{
87
- :xsi_type => 'CpcBid',
88
- :bid => {
89
- :xsi_type => 'Money',
90
- :micro_amount => bid_amount
91
- }
92
- }]
93
- }
94
- ad_group_criterion[:xsi_type] = 'BiddableAdGroupCriterion'
95
- ad_group_criterion[:bidding_strategy_configuration] =
96
- bidding_strategy_configuration
97
- else
98
- ad_group_criterion[:xsi_type] = 'NegativeAdGroupCriterion'
99
- end
100
- ad_group_criterion[:ad_group_id] = @ad_group_id
101
- ad_group_criterion[:criterion] = unit
102
-
103
- create_add_operation(ad_group_criterion)
104
-
105
- return unit
106
- end
107
-
108
- private
109
-
110
- def create_add_operation(ad_group_criterion)
111
- operation = {
112
- :operator => 'ADD',
113
- :operand => ad_group_criterion
114
- }
115
-
116
- @operations << operation
117
- end
118
- end
119
-
120
- def display_tree(node, children, level = 0)
121
- value = ''
122
- type = ''
123
-
124
- if node[:case_value]
125
- type = node[:case_value][:product_dimension_type]
126
-
127
- value = case type
128
- when 'ProductCanonicalCondition'
129
- node[:case_value][:condition]
130
- when 'ProductBiddingCategory'
131
- "%s(%s)" % [node[:case_value][:type], node[:case_value][:value]]
132
- else
133
- node[:case_value][:value]
134
- end
135
- end
136
-
137
- puts "%sid: %s, type: %s, value: %s" %
138
- [' ' * level, node[:id], type, value]
139
-
140
- children[node[:id]].each do |child_node|
141
- display_tree(child_node, children, level + 1)
142
- end
143
- end
144
-
145
- def add_product_partition_tree(ad_group_id)
146
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
147
- # when called without parameters.
148
- adwords = AdwordsApi::Api.new
149
-
150
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
151
- # the configuration file or provide your own logger:
152
- # adwords.logger = Logger.new('adwords_xml.log')
153
-
154
- ad_group_criterion_srv =
155
- adwords.service(:AdGroupCriterionService, API_VERSION)
156
-
157
- helper = ProductPartitionHelper.new(ad_group_id)
158
-
159
- root = helper.create_subdivision()
160
-
161
- new_product_canonical_condition = {
162
- :xsi_type => 'ProductCanonicalCondition',
163
- :condition => 'NEW'
164
- }
165
-
166
- used_product_canonical_condition = {
167
- :xsi_type => 'ProductCanonicalCondition',
168
- :condition => 'USED'
169
- }
170
-
171
- other_product_canonical_condition = {
172
- :xsi_type => 'ProductCanonicalCondition'
173
- }
174
-
175
- helper.create_unit(root, new_product_canonical_condition, 200000)
176
- helper.create_unit(root, used_product_canonical_condition, 100000)
177
- other_condition =
178
- helper.create_subdivision(root, other_product_canonical_condition)
179
-
180
- cool_product_brand = {
181
- :xsi_type => 'ProductBrand',
182
- :value => 'CoolBrand'
183
- }
184
-
185
- cheap_product_brand = {
186
- :xsi_type => 'ProductBrand',
187
- :value => 'CheapBrand'
188
- }
189
-
190
- other_product_brand = {
191
- :xsi_type => 'ProductBrand'
192
- }
193
-
194
- helper.create_unit(other_condition, cool_product_brand, 900000)
195
- helper.create_unit(other_condition, cheap_product_brand, 10000)
196
- other_brand = helper.create_subdivision(other_condition, other_product_brand)
197
-
198
- # The value for the bidding category is a fixed ID for the 'Luggage & Bags'
199
- # category. You can retrieve IDs for categories from the ConstantDataService.
200
- # See the get_product_taxonomy example for more details.
201
- luggage_category = {
202
- :xsi_type => 'ProductBiddingCategory',
203
- :type => 'BIDDING_CATEGORY_L1',
204
- :value => '-5914235892932915235'
205
- }
206
-
207
- generic_category = {
208
- :xsi_type => 'ProductBiddingCategory',
209
- :type => 'BIDDING_CATEGORY_L1'
210
- }
211
-
212
- helper.create_unit(other_brand, luggage_category, 750000)
213
- helper.create_unit(other_brand, generic_category, 110000)
214
-
215
- # Make the mutate request.
216
- result = ad_group_criterion_srv.mutate(helper.operations)
217
-
218
- children = {}
219
- root_node = nil
220
- # For each criterion, make an array containing each of its children.
221
- # We always create the parent before the child, so we can rely on that here.
222
- result[:value].each do |criterion|
223
- children[criterion[:criterion][:id]] = []
224
-
225
- if criterion[:criterion][:parent_criterion_id]
226
- children[criterion[:criterion][:parent_criterion_id]] <<
227
- criterion[:criterion]
228
- else
229
- root_node = criterion[:criterion]
230
- end
231
- end
232
-
233
- display_tree(root_node, children)
234
- end
235
-
236
- if __FILE__ == $0
237
- API_VERSION = :v201506
238
-
239
- begin
240
- ad_group_id = 'INSERT_AD_GROUP_ID_HERE'.to_i
241
-
242
- add_product_partition_tree(ad_group_id)
243
-
244
- # Authorization error.
245
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
246
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
247
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
248
- "to retrieve and store OAuth2 tokens."
249
- puts "See this wiki page for more details:\n\n " +
250
- 'https://github.com/googleads/google-api-ads-ruby/wiki/OAuth2'
251
-
252
- # HTTP errors.
253
- rescue AdsCommon::Errors::HttpError => e
254
- puts "HTTP Error: %s" % e
255
-
256
- # API errors.
257
- rescue AdwordsApi::Errors::ApiException => e
258
- puts "Message: %s" % e.message
259
- puts 'Errors:'
260
- e.errors.each_with_index do |error, index|
261
- puts "\tError [%d]:" % (index + 1)
262
- error.each do |field, value|
263
- puts "\t\t%s: %s" % [field, value]
264
- end
265
- end
266
- end
267
- end