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,186 +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 adds a feed that syncs feed items from a Google My Business (GMB)
20
- # account and associates the feed with a customer.
21
-
22
- require 'adwords_api'
23
- require 'date'
24
-
25
- def add_gmb_location_extensions(gmb_email_address, gmb_access_token,
26
- business_account_identifier)
27
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
28
- # when called without parameters.
29
- adwords = AdwordsApi::Api.new
30
-
31
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
32
- # the configuration file or provide your own logger:
33
- # adwords.logger = Logger.new('adwords_xml.log')
34
-
35
- feed_srv = adwords.service(:FeedService, API_VERSION)
36
- customer_feed_srv = adwords.service(:CustomerFeedService, API_VERSION)
37
-
38
- if gmb_access_token.nil?
39
- gmb_access_token = adwords.get_auth_handler.get_token(
40
- adwords.credential_handler.credentials)[:access_token]
41
- end
42
-
43
- # Create a feed that will sync to the Google My Business account specified
44
- # by gmb_email_address. Do not add FeedAttributes to this object, as AdWords
45
- # will add them automatically because this will be a system generated feed.
46
- gmb_feed = {
47
- :name => "GMB feed #%d" % (Time.new.to_f * 1000).to_i,
48
- :system_feed_generation_data => {
49
- :xsi_type => 'PlacesLocationFeedData',
50
- :o_auth_info => {
51
- :http_method => 'GET',
52
- :http_request_url => 'https://www.googleapis.com/auth/adwords',
53
- :http_authorization_header => "Bearer %s" % gmb_access_token
54
- },
55
- :email_address => gmb_email_address
56
- },
57
- # Since this feed's feed items will be managed by AdWords, you must set
58
- # its origin to ADWORDS.
59
- :origin => 'ADWORDS'
60
- }
61
- # Only include the business_account_identifier if it's specified.
62
- # A nil value will cause an invalid request.
63
- unless business_account_identifier.nil?
64
- gmb_feed[:system_feed_generation_data][:business_account_identifier] =
65
- business_account_identifier
66
- end
67
-
68
- gmb_operation = {
69
- :operator => 'ADD',
70
- :operand => gmb_feed
71
- }
72
-
73
- result = feed_srv.mutate([gmb_operation])
74
- added_feed = result[:value].first
75
- puts "Added GMB feed with ID %d" % added_feed[:id]
76
-
77
- # Add a CustomerFeed that associates the feed with this customer for the
78
- # LOCATION placeholder type.
79
- customer_feed = {
80
- :feed_id => added_feed[:id],
81
- :placeholder_types => [PLACEHOLDER_TYPE_LOCATION],
82
- :matching_function => {
83
- :operator => 'IDENTITY',
84
- :lhs_operand => {
85
- :xsi_type => 'ConstantOperand',
86
- :type => 'BOOLEAN',
87
- :boolean_value => true
88
- }
89
- }
90
- }
91
-
92
- customer_feed_operation = {
93
- :xsi_type => 'CustomerFeedOperation',
94
- :operator => 'ADD',
95
- :operand => customer_feed
96
- }
97
-
98
- added_customer_feed = nil
99
- number_of_attempts = 0
100
- while i < MAX_CUSTOMER_FEED_ADD_ATTEMPTS && !added_customer_feed
101
- number_of_attempts += 1
102
- begin
103
- result = customer_feed_srv.mutate([customer_feed_operation])
104
- added_customer_feed = result[:value].first
105
- puts "Attempt #%d to add the CustomerFeed was successful" %
106
- number_of_attempts
107
- rescue
108
- sleep_seconds = 5 * (2 ** number_of_attempts)
109
- puts ("Attempt #%d to add the CustomerFeed was not succeessful. " +
110
- "Waiting %d seconds before trying again.") %
111
- [number_of_attempts, sleep_seconds]
112
- sleep(sleep_seconds)
113
- end
114
- end
115
-
116
- unless added_customer_feed
117
- raise StandardError, ("Could not create the CustomerFeed after %d " +
118
- "attempts. Please retry the CustomerFeed ADD operation later.") %
119
- MAX_CUSTOMER_FEED_ADD_ATTEMPTS
120
- end
121
-
122
- puts "Added CustomerFeed for feed ID %d and placeholder type %d" %
123
- [added_customer_feed[:id], added_customer_feed[:placeholder_types].first]
124
-
125
- # OPTIONAL: Create a CampaignFeed to specify which FeedItems to use at the
126
- # Campaign level. This will be similar to the CampaignFeed in the
127
- # add_site_links example, except you can filter based on the business name
128
- # and category of each FeedItem by using a FeedAttributeOperand in your
129
- # matching function.
130
-
131
- # OPTIONAL: Create an AdGroupFeed for even more fine grained control over
132
- # which feed items are used at the AdGroup level.
133
- end
134
-
135
- if __FILE__ == $0
136
- API_VERSION = :v201506
137
- PLACEHOLDER_TYPE_LOCATION = 7
138
- MAX_CUSTOMER_FEED_ADD_ATTEMPTS = 10
139
-
140
- begin
141
- # The email address of either an owner or a manager of the GMB account.
142
- gmb_email_address = 'INSERT_GMB_EMAIL_ADDRESS_HERE'
143
-
144
- # If the gmbEmailAddress above is the same as you used to generate your
145
- # AdWords API refresh token, leave the value below as nil.
146
- # Otherwise, to obtain an access token for your GMB account, generate a
147
- # refresh token as you did for AdWords, but make sure you are logged in as
148
- # the same user as gmb_email_address above when you follow the link, then
149
- # capture the generated access token
150
- gmb_access_token = nil
151
-
152
- # If the gmb_email_address above is for a GMB manager instead of
153
- # the GMB account owner, then set business_account_identifier to the
154
- # +Page ID of a location for which the manager has access. See the
155
- # location extensions guide at
156
- # https://developers.google.com/adwords/api/docs/guides/feed-services-locations
157
- # for details.
158
- business_account_identifier = nil
159
-
160
- add_gmb_location_extensions(gmb_email_address, gmb_access_token,
161
- business_account_identifier)
162
-
163
- # Authorization error.
164
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
165
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
166
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
167
- "to retrieve and store OAuth2 tokens."
168
- puts "See this wiki page for more details:\n\n " +
169
- 'https://github.com/googleads/google-api-ads-ruby/wiki/OAuth2'
170
-
171
- # HTTP errors.
172
- rescue AdsCommon::Errors::HttpError => e
173
- puts "HTTP Error: %s" % e
174
-
175
- # API errors.
176
- rescue AdwordsApi::Errors::ApiException => e
177
- puts "Message: %s" % e.message
178
- puts 'Errors:'
179
- e.errors.each_with_index do |error, index|
180
- puts "\tError [%d]:" % (index + 1)
181
- error.each do |field, value|
182
- puts "\t\t%s: %s" % [field, value]
183
- end
184
- end
185
- end
186
- end
@@ -1,164 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Copyright:: Copyright 2015, 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 adds a sitelinks feed and associates it with a campaign.
20
-
21
- require 'adwords_api'
22
- require 'date'
23
-
24
- def add_site_links(campaign_id)
25
- # AdwordsApi::Api will read a config file from ENV['HOME']/adwords_api.yml
26
- # when called without parameters.
27
- adwords = AdwordsApi::Api.new
28
-
29
- # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
30
- # the configuration file or provide your own logger:
31
- # adwords.logger = Logger.new('adwords_xml.log')
32
-
33
- customer_srv = adwords.service(:CustomerService, API_VERSION)
34
- customer = customer_srv.get()
35
- customer_time_zone = customer[:date_time_zone]
36
-
37
- campaign_extension_setting_srv =
38
- adwords.service(:CampaignExtensionSettingService, API_VERSION)
39
-
40
- sitelink_1 = {
41
- :xsi_type => "SitelinkFeedItem",
42
- :sitelink_text => "Store Hours",
43
- :sitelink_url => "http://www.example.com/storehours"
44
- }
45
-
46
- sitelink_2 = {
47
- :xsi_type => "SitelinkFeedItem",
48
- :sitelink_text => "Thanksgiving Specials",
49
- :sitelink_url => "http://www.example.com/thanksgiving",
50
- :start_time => DateTime.new(Date.today.year, 11, 20, 0, 0, 0).
51
- strftime("%Y%m%d %H%M%S ") + customer_time_zone,
52
- :end_time => DateTime.new(Date.today.year, 11, 27, 23, 59, 59).
53
- strftime("%Y%m%d %H%M%S ") + customer_time_zone
54
- }
55
-
56
- sitelink_3 = {
57
- :xsi_type => "SitelinkFeedItem",
58
- :sitelink_text => "Wifi available",
59
- :sitelink_url => "http://www.example.com/mobile/wifi",
60
- :device_preference => {:device_preference => 30001}
61
- }
62
-
63
- sitelink_4 = {
64
- :xsi_type => "SitelinkFeedItem",
65
- :sitelink_text => "Happy hours",
66
- :sitelink_url => "http://www.example.com/happyhours",
67
- :scheduling => {
68
- :feed_item_schedules => [
69
- {
70
- :day_of_week => 'MONDAY',
71
- :start_hour => 18,
72
- :start_minute => 'ZERO',
73
- :end_hour => 21,
74
- :end_minute => 'ZERO'
75
- },
76
- {
77
- :day_of_week => 'TUESDAY',
78
- :start_hour => 18,
79
- :start_minute => 'ZERO',
80
- :end_hour => 21,
81
- :end_minute => 'ZERO'
82
- },
83
- {
84
- :day_of_week => 'WEDNESDAY',
85
- :start_hour => 18,
86
- :start_minute => 'ZERO',
87
- :end_hour => 21,
88
- :end_minute => 'ZERO'
89
- },
90
- {
91
- :day_of_week => 'THURSDAY',
92
- :start_hour => 18,
93
- :start_minute => 'ZERO',
94
- :end_hour => 21,
95
- :end_minute => 'ZERO'
96
- },
97
- {
98
- :day_of_week => 'FRIDAY',
99
- :start_hour => 18,
100
- :start_minute => 'ZERO',
101
- :end_hour => 21,
102
- :end_minute => 'ZERO'
103
- }
104
- ]
105
- }
106
- }
107
-
108
- campaign_extension_setting = {
109
- :campaign_id => campaign_id,
110
- :extension_type => 'SITELINK',
111
- :extension_setting => {
112
- :extensions => [sitelink_1, sitelink_2, sitelink_3, sitelink_4]
113
- }
114
- }
115
-
116
- operation = {
117
- :operand => campaign_extension_setting,
118
- :operator => 'ADD'
119
- }
120
-
121
- response = campaign_extension_setting_srv.mutate([operation])
122
- if response and response[:value]
123
- new_extension_setting = response[:value].first
124
- puts "Extension setting wiht type = %s was added to campaign ID %d" % [
125
- new_extension_setting[:extension_type],
126
- new_extension_setting[:campaign_id]
127
- ]
128
- elsif
129
- puts "No extension settings were created."
130
- end
131
- end
132
-
133
- if __FILE__ == $0
134
- API_VERSION = :v201506
135
-
136
- begin
137
- # Campaign ID to add site link to.
138
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
139
- add_site_links(campaign_id)
140
-
141
- # Authorization error.
142
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
143
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
144
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
145
- "to retrieve and store OAuth2 tokens."
146
- puts "See this wiki page for more details:\n\n " +
147
- 'https://github.com/googleads/google-api-ads-ruby/wiki/OAuth2'
148
-
149
- # HTTP errors.
150
- rescue AdsCommon::Errors::HttpError => e
151
- puts "HTTP Error: %s" % e
152
-
153
- # API errors.
154
- rescue AdwordsApi::Errors::ApiException => e
155
- puts "Message: %s" % e.message
156
- puts 'Errors:'
157
- e.errors.each_with_index do |error, index|
158
- puts "\tError [%d]:" % (index + 1)
159
- error.each do |field, value|
160
- puts "\t\t%s: %s" % [field, value]
161
- end
162
- end
163
- end
164
- end
@@ -1,271 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Encoding: utf-8
3
- #
4
- # Copyright:: Copyright 2013, 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 adds a sitelinks feed and associates it with a campaign.
20
-
21
- require 'adwords_api'
22
-
23
- def add_site_links(campaign_id)
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
- feed_srv = adwords.service(:FeedService, API_VERSION)
33
- feed_item_srv = adwords.service(:FeedItemService, API_VERSION)
34
- feed_mapping_srv = adwords.service(:FeedMappingService, API_VERSION)
35
- campaign_feed_srv = adwords.service(:CampaignFeedService, API_VERSION)
36
-
37
- sitelinks_data = {}
38
-
39
- # Create site links feed first.
40
- site_links_feed = {
41
- :name => 'Feed For Site Links',
42
- :attributes => [
43
- {:type => 'STRING', :name => 'Link Text'},
44
- {:type => 'URL_LIST', :name => 'Final URLs'},
45
- {:type => 'STRING', :name => 'Line 1 Description'},
46
- {:type => 'STRING', :name => 'Line 2 Description'}
47
- ]
48
- }
49
-
50
- response = feed_srv.mutate([
51
- {:operator => 'ADD', :operand => site_links_feed}
52
- ])
53
- if response and response[:value]
54
- feed = response[:value].first
55
- # Attribute of type STRING.
56
- link_text_feed_attribute_id = feed[:attributes][0][:id]
57
- # Attribute of type URL_LIST.
58
- final_url_feed_attribute_id = feed[:attributes][1][:id]
59
- # Attribute of type STRING.
60
- line_1_feed_attribute_id = feed[:attributes][2][:id]
61
- #Attribute of type STRING.
62
- line_2_feed_attribute_id = feed[:attributes][3][:id]
63
- puts "Feed with name '%s' and ID %d was added with" %
64
- [feed[:name], feed[:id]]
65
- puts "\tText attribute ID %d and Final URLs attribute ID %d " +
66
- "and Line 1 attribute ID %d and Line 2 attribute ID %d." % [
67
- link_text_feed_attribute_id,
68
- final_url_feed_attribute_id,
69
- line_1_feed_attribute_id,
70
- line_2_feed_attribute_id
71
- ]
72
-
73
- sitelinks_data[:feed_id] = feed[:id]
74
- sitelinks_data[:link_text_feed_id] = link_text_feed_attribute_id
75
- sitelinks_data[:final_url_feed_id] = final_url_feed_attribute_id
76
- sitelinks_data[:line_1_feed_id] = line_1_feed_attribute_id
77
- sitelinks_data[:line_2_feed_id] = line_2_feed_attribute_id
78
- else
79
- raise new StandardError, 'No feeds were added.'
80
- end
81
-
82
- # Create site links feed items.
83
- items_data = [
84
- {
85
- :text => 'Home',
86
- :final_urls => ['http://www.example.com'],
87
- :line_1 => 'Home line 1',
88
- :line_2 => 'Home line 2'
89
- },
90
- {
91
- :text => 'Stores',
92
- :final_urls => ['http://www.example.com/stores'],
93
- :line_1 => 'Stores line 1',
94
- :line_2 => 'Stores line 2'
95
- },
96
- {
97
- :text => 'On Sale',
98
- :final_urls => ['http://www.example.com/sale'],
99
- :line_1 => 'On Sale line 1',
100
- :line_2 => 'On Sale line 2'
101
- },
102
- {
103
- :text => 'Support',
104
- :final_urls => ['http://www.example.com/support'],
105
- :line_1 => 'Support line 1',
106
- :line_2 => 'Support line 2'
107
- },
108
- {
109
- :text => 'Products',
110
- :final_urls => ['http://www.example.com/products'],
111
- :line_1 => 'Products line 1',
112
- :line_2 => 'Products line 2'
113
- },
114
- {
115
- :text => 'About',
116
- :final_urls => ['http://www.example.com/about'],
117
- :line_1 => 'About line 1',
118
- :line_2 => 'About line 2'
119
- }
120
- ]
121
-
122
- feed_items = items_data.map do |item|
123
- {
124
- :feed_id => sitelinks_data[:feed_id],
125
- :attribute_values => [
126
- {
127
- :feed_attribute_id => sitelinks_data[:link_text_feed_id],
128
- :string_value => item[:text]
129
- },
130
- {
131
- :feed_attribute_id => sitelinks_data[:final_url_feed_id],
132
- :string_values => item[:final_urls]
133
- },
134
- {
135
- :feed_attribute_id => sitelinks_data[:line_1_feed_id],
136
- :string_value => item[:line_1]
137
- },
138
- {
139
- :feed_attribute_id => sitelinks_data[:line_2_feed_id],
140
- :string_value => item[:line_2]
141
- }
142
- ]
143
- }
144
- end
145
-
146
- feed_items_operations = feed_items.map do |item|
147
- {:operator => 'ADD', :operand => item}
148
- end
149
-
150
- response = feed_item_srv.mutate(feed_items_operations)
151
- if response and response[:value]
152
- sitelinks_data[:feed_item_ids] = []
153
- response[:value].each do |feed_item|
154
- puts 'Feed item with ID %d was added.' % feed_item[:feed_item_id]
155
- sitelinks_data[:feed_item_ids] << feed_item[:feed_item_id]
156
- end
157
- else
158
- raise new StandardError, 'No feed items were added.'
159
- end
160
-
161
- # Create site links feed mapping.
162
- feed_mapping = {
163
- :placeholder_type => PLACEHOLDER_SITELINKS,
164
- :feed_id => sitelinks_data[:feed_id],
165
- :attribute_field_mappings => [
166
- {
167
- :feed_attribute_id => sitelinks_data[:link_text_feed_id],
168
- :field_id => PLACEHOLDER_FIELD_SITELINK_LINK_TEXT
169
- },
170
- {
171
- :feed_attribute_id => sitelinks_data[:final_url_feed_id],
172
- :field_id => PLACEHOLDER_FIELD_SITELINK_FINAL_URLS
173
- },
174
- {
175
- :feed_attribute_id => sitelinks_data[:line_1_feed_id],
176
- :field_id => PLACEHOLDER_FIELD_SITELINK_LINE_1_TEXT
177
- },
178
- {
179
- :feed_attribute_id => sitelinks_data[:line_2_feed_id],
180
- :field_id => PLACEHOLDER_FIELD_SITELINK_LINE_2_TEXT
181
- }
182
- ]
183
- }
184
-
185
- response = feed_mapping_srv.mutate([
186
- {:operator => 'ADD', :operand => feed_mapping}
187
- ])
188
- if response and response[:value]
189
- feed_mapping = response[:value].first
190
- puts ('Feed mapping with ID %d and placeholder type %d was saved for feed' +
191
- ' with ID %d.') % [
192
- feed_mapping[:feed_mapping_id],
193
- feed_mapping[:placeholder_type],
194
- feed_mapping[:feed_id]
195
- ]
196
- else
197
- raise new StandardError, 'No feed mappings were added.'
198
- end
199
-
200
- # Construct a matching function that associates the sitelink feeditems to the
201
- # campaign, and set the device preference to Mobile. See the matching function
202
- # guide at:
203
- # https://developers.google.com/adwords/api/docs/guides/feed-matching-functions
204
- # for more details.
205
- matching_function_string =
206
- "AND(IN(FEED_ITEM_ID, {%s}), EQUALS(CONTEXT.DEVICE, 'Mobile'))" %
207
- sitelinks_data[:feed_item_ids].join(',')
208
-
209
- # Create site links campaign feed.
210
- campaign_feed = {
211
- :feed_id => sitelinks_data[:feed_id],
212
- :campaign_id => campaign_id,
213
- :matching_function => {:function_string => matching_function_string},
214
- # Specifying placeholder types on the CampaignFeed allows the same feed
215
- # to be used for different placeholders in different Campaigns.
216
- :placeholder_types => [PLACEHOLDER_SITELINKS]
217
- }
218
-
219
- response = campaign_feed_srv.mutate([
220
- {:operator => 'ADD', :operand => campaign_feed}
221
- ])
222
- if response and response[:value]
223
- campaign_feed = response[:value].first
224
- puts 'Campaign with ID %d was associated with feed with ID %d.' %
225
- [campaign_feed[:campaign_id], campaign_feed[:feed_id]]
226
- else
227
- raise new StandardError, 'No campaign feeds were added.'
228
- end
229
- end
230
-
231
- if __FILE__ == $0
232
- API_VERSION = :v201506
233
-
234
- # See the Placeholder reference page for a list of all the placeholder types
235
- # and fields, see:
236
- # https://developers.google.com/adwords/api/docs/appendix/placeholders
237
- PLACEHOLDER_SITELINKS = 1
238
- PLACEHOLDER_FIELD_SITELINK_LINK_TEXT = 1
239
- PLACEHOLDER_FIELD_SITELINK_FINAL_URLS = 5
240
- PLACEHOLDER_FIELD_SITELINK_LINE_1_TEXT = 3
241
- PLACEHOLDER_FIELD_SITELINK_LINE_2_TEXT = 4
242
-
243
- begin
244
- # Campaign ID to add site link to.
245
- campaign_id = 'INSERT_CAMPAIGN_ID_HERE'.to_i
246
- add_site_links(campaign_id)
247
-
248
- # Authorization error.
249
- rescue AdsCommon::Errors::OAuth2VerificationRequired => e
250
- puts "Authorization credentials are not valid. Edit adwords_api.yml for " +
251
- "OAuth2 client ID and secret and run misc/setup_oauth2.rb example " +
252
- "to retrieve and store OAuth2 tokens."
253
- puts "See this wiki page for more details:\n\n " +
254
- 'https://github.com/googleads/google-api-ads-ruby/wiki/OAuth2'
255
-
256
- # HTTP errors.
257
- rescue AdsCommon::Errors::HttpError => e
258
- puts "HTTP Error: %s" % e
259
-
260
- # API errors.
261
- rescue AdwordsApi::Errors::ApiException => e
262
- puts "Message: %s" % e.message
263
- puts 'Errors:'
264
- e.errors.each_with_index do |error, index|
265
- puts "\tError [%d]:" % (index + 1)
266
- error.each do |field, value|
267
- puts "\t\t%s: %s" % [field, value]
268
- end
269
- end
270
- end
271
- end