google-adwords-api 0.18.3 → 0.19.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 (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