google-dfp-api 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. data/ChangeLog +5 -0
  2. data/README +4 -4
  3. data/examples/v201203/line_item_service/update_line_items.rb +1 -1
  4. data/examples/v201204/audience_segment_service/get_all_audience_segments.rb +93 -0
  5. data/examples/v201204/common/error_handling.rb +76 -0
  6. data/examples/v201204/common/oauth_handling.rb +128 -0
  7. data/examples/v201204/company_service/create_companies.rb +81 -0
  8. data/examples/v201204/company_service/get_all_companies.rb +92 -0
  9. data/examples/v201204/company_service/get_companies_by_statement.rb +88 -0
  10. data/examples/v201204/company_service/get_company.rb +72 -0
  11. data/examples/v201204/company_service/update_companies.rb +95 -0
  12. data/examples/v201204/content_service/get_all_content.rb +94 -0
  13. data/examples/v201204/content_service/get_content_by_category.rb +136 -0
  14. data/examples/v201204/creative_service/copy_image_creatives.rb +115 -0
  15. data/examples/v201204/creative_service/create_creative_from_template.rb +139 -0
  16. data/examples/v201204/creative_service/create_creatives.rb +106 -0
  17. data/examples/v201204/creative_service/create_custom_creative.rb +104 -0
  18. data/examples/v201204/creative_service/get_all_creatives.rb +93 -0
  19. data/examples/v201204/creative_service/get_creative.rb +72 -0
  20. data/examples/v201204/creative_service/get_creatives_by_statement.rb +87 -0
  21. data/examples/v201204/creative_service/update_creatives.rb +96 -0
  22. data/examples/v201204/creative_template_service/get_all_creative_templates.rb +94 -0
  23. data/examples/v201204/creative_template_service/get_creative_template.rb +74 -0
  24. data/examples/v201204/creative_template_service/get_creative_templates_by_statement.rb +80 -0
  25. data/examples/v201204/custom_field_service/create_custom_field_options.rb +87 -0
  26. data/examples/v201204/custom_field_service/create_custom_fields.rb +86 -0
  27. data/examples/v201204/custom_field_service/deactivate_all_line_item_custom_fields.rb +112 -0
  28. data/examples/v201204/custom_field_service/get_all_custom_fields.rb +102 -0
  29. data/examples/v201204/custom_field_service/get_all_line_item_custom_fields.rb +86 -0
  30. data/examples/v201204/custom_field_service/set_line_item_custom_field_value.rb +135 -0
  31. data/examples/v201204/custom_field_service/update_custom_fields.rb +83 -0
  32. data/examples/v201204/custom_targeting_service/create_custom_targeting_keys_and_values.rb +140 -0
  33. data/examples/v201204/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
  34. data/examples/v201204/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
  35. data/examples/v201204/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
  36. data/examples/v201204/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
  37. data/examples/v201204/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
  38. data/examples/v201204/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
  39. data/examples/v201204/custom_targeting_service/update_custom_targeting_values.rb +106 -0
  40. data/examples/v201204/forecast_service/get_forecast.rb +107 -0
  41. data/examples/v201204/forecast_service/get_forecast_by_id.rb +80 -0
  42. data/examples/v201204/inventory_service/create_ad_units.rb +101 -0
  43. data/examples/v201204/inventory_service/create_mobile_ad_unit.rb +100 -0
  44. data/examples/v201204/inventory_service/create_video_ad_unit.rb +108 -0
  45. data/examples/v201204/inventory_service/deactivate_ad_units.rb +119 -0
  46. data/examples/v201204/inventory_service/get_ad_unit.rb +72 -0
  47. data/examples/v201204/inventory_service/get_ad_unit_sizes.rb +85 -0
  48. data/examples/v201204/inventory_service/get_ad_units_by_statement.rb +96 -0
  49. data/examples/v201204/inventory_service/get_all_ad_units.rb +93 -0
  50. data/examples/v201204/inventory_service/update_ad_units.rb +94 -0
  51. data/examples/v201204/label_service/create_labels.rb +83 -0
  52. data/examples/v201204/label_service/deactivate_labels.rb +118 -0
  53. data/examples/v201204/label_service/get_all_labels.rb +95 -0
  54. data/examples/v201204/label_service/get_label.rb +76 -0
  55. data/examples/v201204/label_service/get_labels_by_statement.rb +81 -0
  56. data/examples/v201204/label_service/update_labels.rb +102 -0
  57. data/examples/v201204/line_item_creative_association_service/create_licas.rb +94 -0
  58. data/examples/v201204/line_item_creative_association_service/deactivate_licas.rb +127 -0
  59. data/examples/v201204/line_item_creative_association_service/get_all_licas.rb +95 -0
  60. data/examples/v201204/line_item_creative_association_service/get_lica.rb +77 -0
  61. data/examples/v201204/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
  62. data/examples/v201204/line_item_creative_association_service/update_licas.rb +91 -0
  63. data/examples/v201204/line_item_service/activate_line_items.rb +131 -0
  64. data/examples/v201204/line_item_service/create_line_items.rb +177 -0
  65. data/examples/v201204/line_item_service/create_mobile_line_item.rb +135 -0
  66. data/examples/v201204/line_item_service/create_video_line_item.rb +156 -0
  67. data/examples/v201204/line_item_service/get_all_line_items.rb +94 -0
  68. data/examples/v201204/line_item_service/get_line_item.rb +74 -0
  69. data/examples/v201204/line_item_service/get_line_items_by_statement.rb +93 -0
  70. data/examples/v201204/line_item_service/get_recently_updated_line_items.rb +98 -0
  71. data/examples/v201204/line_item_service/target_custom_criteria.rb +129 -0
  72. data/examples/v201204/line_item_service/update_line_items.rb +109 -0
  73. data/examples/v201204/network_service/get_all_networks.rb +74 -0
  74. data/examples/v201204/network_service/get_current_network.rb +66 -0
  75. data/examples/v201204/network_service/make_test_network.rb +76 -0
  76. data/examples/v201204/order_service/approve_orders.rb +122 -0
  77. data/examples/v201204/order_service/create_orders.rb +92 -0
  78. data/examples/v201204/order_service/get_all_orders.rb +93 -0
  79. data/examples/v201204/order_service/get_order.rb +74 -0
  80. data/examples/v201204/order_service/get_orders_by_statement.rb +90 -0
  81. data/examples/v201204/order_service/update_orders.rb +95 -0
  82. data/examples/v201204/placement_service/create_placements.rb +131 -0
  83. data/examples/v201204/placement_service/deactivate_placements.rb +118 -0
  84. data/examples/v201204/placement_service/get_all_placements.rb +93 -0
  85. data/examples/v201204/placement_service/get_placement.rb +74 -0
  86. data/examples/v201204/placement_service/get_placements_by_statement.rb +86 -0
  87. data/examples/v201204/placement_service/update_placements.rb +97 -0
  88. data/examples/v201204/publisher_query_language_service/get_all_cities.rb +90 -0
  89. data/examples/v201204/report_service/download_report.rb +81 -0
  90. data/examples/v201204/report_service/run_delivery_report.rb +103 -0
  91. data/examples/v201204/report_service/run_inventory_report.rb +92 -0
  92. data/examples/v201204/report_service/run_merged_delivery_report.rb +94 -0
  93. data/examples/v201204/report_service/run_sales_report.rb +89 -0
  94. data/examples/v201204/suggested_ad_unit_service/approve_all_suggested_ad_units.rb +109 -0
  95. data/examples/v201204/suggested_ad_unit_service/get_all_suggested_ad_units.rb +96 -0
  96. data/examples/v201204/suggested_ad_unit_service/get_suggested_ad_unit.rb +75 -0
  97. data/examples/v201204/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +92 -0
  98. data/examples/v201204/team_service/create_teams.rb +83 -0
  99. data/examples/v201204/team_service/get_all_teams.rb +92 -0
  100. data/examples/v201204/team_service/get_team.rb +74 -0
  101. data/examples/v201204/team_service/get_teams_by_statement.rb +78 -0
  102. data/examples/v201204/team_service/update_teams.rb +95 -0
  103. data/examples/v201204/third_party_slot_service/archive_third_party_slots.rb +125 -0
  104. data/examples/v201204/third_party_slot_service/create_third_party_slot.rb +91 -0
  105. data/examples/v201204/third_party_slot_service/get_all_third_party_slots.rb +93 -0
  106. data/examples/v201204/third_party_slot_service/get_third_party_slot_by_statement.rb +86 -0
  107. data/examples/v201204/third_party_slot_service/update_third_party_slots.rb +95 -0
  108. data/examples/v201204/user_service/create_users.rb +89 -0
  109. data/examples/v201204/user_service/deactivate_users.rb +97 -0
  110. data/examples/v201204/user_service/get_all_roles.rb +73 -0
  111. data/examples/v201204/user_service/get_all_users.rb +93 -0
  112. data/examples/v201204/user_service/get_current_user.rb +66 -0
  113. data/examples/v201204/user_service/get_user.rb +73 -0
  114. data/examples/v201204/user_service/get_users_by_statement.rb +79 -0
  115. data/examples/v201204/user_service/update_users.rb +89 -0
  116. data/examples/v201204/user_team_association_service/create_user_team_associations.rb +86 -0
  117. data/examples/v201204/user_team_association_service/delete_user_team_associations.rb +111 -0
  118. data/examples/v201204/user_team_association_service/get_all_user_team_associations.rb +94 -0
  119. data/examples/v201204/user_team_association_service/get_user_team_association.rb +76 -0
  120. data/examples/v201204/user_team_association_service/get_user_team_associations_by_statement.rb +94 -0
  121. data/examples/v201204/user_team_association_service/update_user_team_associations.rb +102 -0
  122. data/lib/dfp_api.rb +9 -15
  123. data/lib/dfp_api/api_config.rb +24 -20
  124. data/lib/dfp_api/client_login_header_handler.rb +17 -21
  125. data/lib/dfp_api/credential_handler.rb +16 -24
  126. data/lib/dfp_api/v201108/company_service.rb +3 -3
  127. data/lib/dfp_api/v201108/company_service_registry.rb +1 -1
  128. data/lib/dfp_api/v201108/creative_service.rb +3 -3
  129. data/lib/dfp_api/v201108/creative_service_registry.rb +1 -1
  130. data/lib/dfp_api/v201108/custom_targeting_service.rb +3 -3
  131. data/lib/dfp_api/v201108/custom_targeting_service_registry.rb +1 -1
  132. data/lib/dfp_api/v201108/forecast_service.rb +3 -3
  133. data/lib/dfp_api/v201108/forecast_service_registry.rb +1 -1
  134. data/lib/dfp_api/v201108/inventory_service.rb +3 -3
  135. data/lib/dfp_api/v201108/inventory_service_registry.rb +1 -1
  136. data/lib/dfp_api/v201108/label_service.rb +3 -3
  137. data/lib/dfp_api/v201108/label_service_registry.rb +1 -1
  138. data/lib/dfp_api/v201108/line_item_creative_association_service.rb +3 -3
  139. data/lib/dfp_api/v201108/line_item_creative_association_service_registry.rb +1 -1
  140. data/lib/dfp_api/v201108/line_item_service.rb +3 -3
  141. data/lib/dfp_api/v201108/line_item_service_registry.rb +1 -1
  142. data/lib/dfp_api/v201108/network_service.rb +3 -3
  143. data/lib/dfp_api/v201108/network_service_registry.rb +1 -1
  144. data/lib/dfp_api/v201108/order_service.rb +3 -3
  145. data/lib/dfp_api/v201108/order_service_registry.rb +1 -1
  146. data/lib/dfp_api/v201108/placement_service.rb +3 -3
  147. data/lib/dfp_api/v201108/placement_service_registry.rb +1 -1
  148. data/lib/dfp_api/v201108/publisher_query_language_service.rb +3 -3
  149. data/lib/dfp_api/v201108/publisher_query_language_service_registry.rb +1 -1
  150. data/lib/dfp_api/v201108/report_service.rb +3 -3
  151. data/lib/dfp_api/v201108/report_service_registry.rb +1 -1
  152. data/lib/dfp_api/v201108/third_party_slot_service.rb +3 -3
  153. data/lib/dfp_api/v201108/third_party_slot_service_registry.rb +1 -1
  154. data/lib/dfp_api/v201108/user_service.rb +3 -3
  155. data/lib/dfp_api/v201108/user_service_registry.rb +1 -1
  156. data/lib/dfp_api/v201111/company_service.rb +3 -3
  157. data/lib/dfp_api/v201111/company_service_registry.rb +1 -1
  158. data/lib/dfp_api/v201111/content_service.rb +3 -3
  159. data/lib/dfp_api/v201111/content_service_registry.rb +1 -1
  160. data/lib/dfp_api/v201111/creative_service.rb +3 -3
  161. data/lib/dfp_api/v201111/creative_service_registry.rb +1 -1
  162. data/lib/dfp_api/v201111/creative_template_service.rb +3 -3
  163. data/lib/dfp_api/v201111/creative_template_service_registry.rb +1 -1
  164. data/lib/dfp_api/v201111/custom_targeting_service.rb +3 -3
  165. data/lib/dfp_api/v201111/custom_targeting_service_registry.rb +1 -1
  166. data/lib/dfp_api/v201111/forecast_service.rb +3 -3
  167. data/lib/dfp_api/v201111/forecast_service_registry.rb +1 -1
  168. data/lib/dfp_api/v201111/inventory_service.rb +3 -3
  169. data/lib/dfp_api/v201111/inventory_service_registry.rb +1 -1
  170. data/lib/dfp_api/v201111/label_service.rb +3 -3
  171. data/lib/dfp_api/v201111/label_service_registry.rb +1 -1
  172. data/lib/dfp_api/v201111/line_item_creative_association_service.rb +3 -3
  173. data/lib/dfp_api/v201111/line_item_creative_association_service_registry.rb +1 -1
  174. data/lib/dfp_api/v201111/line_item_service.rb +3 -3
  175. data/lib/dfp_api/v201111/line_item_service_registry.rb +1 -1
  176. data/lib/dfp_api/v201111/network_service.rb +3 -3
  177. data/lib/dfp_api/v201111/network_service_registry.rb +1 -1
  178. data/lib/dfp_api/v201111/order_service.rb +3 -3
  179. data/lib/dfp_api/v201111/order_service_registry.rb +1 -1
  180. data/lib/dfp_api/v201111/placement_service.rb +3 -3
  181. data/lib/dfp_api/v201111/placement_service_registry.rb +1 -1
  182. data/lib/dfp_api/v201111/publisher_query_language_service.rb +3 -3
  183. data/lib/dfp_api/v201111/publisher_query_language_service_registry.rb +1 -1
  184. data/lib/dfp_api/v201111/report_service.rb +3 -3
  185. data/lib/dfp_api/v201111/report_service_registry.rb +1 -1
  186. data/lib/dfp_api/v201111/suggested_ad_unit_service.rb +3 -3
  187. data/lib/dfp_api/v201111/suggested_ad_unit_service_registry.rb +2 -2
  188. data/lib/dfp_api/v201111/third_party_slot_service.rb +3 -3
  189. data/lib/dfp_api/v201111/third_party_slot_service_registry.rb +1 -1
  190. data/lib/dfp_api/v201111/user_service.rb +3 -3
  191. data/lib/dfp_api/v201111/user_service_registry.rb +1 -1
  192. data/lib/dfp_api/v201201/company_service.rb +3 -3
  193. data/lib/dfp_api/v201201/company_service_registry.rb +1 -1
  194. data/lib/dfp_api/v201201/content_service.rb +3 -3
  195. data/lib/dfp_api/v201201/content_service_registry.rb +1 -1
  196. data/lib/dfp_api/v201201/creative_service.rb +3 -3
  197. data/lib/dfp_api/v201201/creative_service_registry.rb +1 -1
  198. data/lib/dfp_api/v201201/creative_template_service.rb +3 -3
  199. data/lib/dfp_api/v201201/creative_template_service_registry.rb +1 -1
  200. data/lib/dfp_api/v201201/custom_targeting_service.rb +3 -3
  201. data/lib/dfp_api/v201201/custom_targeting_service_registry.rb +1 -1
  202. data/lib/dfp_api/v201201/forecast_service.rb +3 -3
  203. data/lib/dfp_api/v201201/forecast_service_registry.rb +1 -1
  204. data/lib/dfp_api/v201201/inventory_service.rb +3 -3
  205. data/lib/dfp_api/v201201/inventory_service_registry.rb +1 -1
  206. data/lib/dfp_api/v201201/label_service.rb +3 -3
  207. data/lib/dfp_api/v201201/label_service_registry.rb +1 -1
  208. data/lib/dfp_api/v201201/line_item_creative_association_service.rb +3 -3
  209. data/lib/dfp_api/v201201/line_item_creative_association_service_registry.rb +1 -1
  210. data/lib/dfp_api/v201201/line_item_service.rb +3 -3
  211. data/lib/dfp_api/v201201/line_item_service_registry.rb +1 -1
  212. data/lib/dfp_api/v201201/network_service.rb +3 -3
  213. data/lib/dfp_api/v201201/network_service_registry.rb +1 -1
  214. data/lib/dfp_api/v201201/order_service.rb +3 -3
  215. data/lib/dfp_api/v201201/order_service_registry.rb +1 -1
  216. data/lib/dfp_api/v201201/placement_service.rb +3 -3
  217. data/lib/dfp_api/v201201/placement_service_registry.rb +1 -1
  218. data/lib/dfp_api/v201201/publisher_query_language_service.rb +3 -3
  219. data/lib/dfp_api/v201201/publisher_query_language_service_registry.rb +1 -1
  220. data/lib/dfp_api/v201201/report_service.rb +3 -3
  221. data/lib/dfp_api/v201201/report_service_registry.rb +1 -1
  222. data/lib/dfp_api/v201201/suggested_ad_unit_service.rb +3 -3
  223. data/lib/dfp_api/v201201/suggested_ad_unit_service_registry.rb +2 -2
  224. data/lib/dfp_api/v201201/team_service.rb +3 -3
  225. data/lib/dfp_api/v201201/team_service_registry.rb +1 -1
  226. data/lib/dfp_api/v201201/third_party_slot_service.rb +3 -3
  227. data/lib/dfp_api/v201201/third_party_slot_service_registry.rb +1 -1
  228. data/lib/dfp_api/v201201/user_service.rb +3 -3
  229. data/lib/dfp_api/v201201/user_service_registry.rb +1 -1
  230. data/lib/dfp_api/v201203/audience_segment_service.rb +3 -3
  231. data/lib/dfp_api/v201203/audience_segment_service_registry.rb +1 -1
  232. data/lib/dfp_api/v201203/company_service.rb +3 -3
  233. data/lib/dfp_api/v201203/company_service_registry.rb +1 -1
  234. data/lib/dfp_api/v201203/content_service.rb +3 -3
  235. data/lib/dfp_api/v201203/content_service_registry.rb +1 -1
  236. data/lib/dfp_api/v201203/creative_service.rb +3 -3
  237. data/lib/dfp_api/v201203/creative_service_registry.rb +1 -1
  238. data/lib/dfp_api/v201203/creative_template_service.rb +3 -3
  239. data/lib/dfp_api/v201203/creative_template_service_registry.rb +1 -1
  240. data/lib/dfp_api/v201203/custom_targeting_service.rb +3 -3
  241. data/lib/dfp_api/v201203/custom_targeting_service_registry.rb +1 -1
  242. data/lib/dfp_api/v201203/forecast_service.rb +3 -3
  243. data/lib/dfp_api/v201203/forecast_service_registry.rb +1 -1
  244. data/lib/dfp_api/v201203/inventory_service.rb +3 -3
  245. data/lib/dfp_api/v201203/inventory_service_registry.rb +1 -1
  246. data/lib/dfp_api/v201203/label_service.rb +3 -3
  247. data/lib/dfp_api/v201203/label_service_registry.rb +1 -1
  248. data/lib/dfp_api/v201203/line_item_creative_association_service.rb +3 -3
  249. data/lib/dfp_api/v201203/line_item_creative_association_service_registry.rb +1 -1
  250. data/lib/dfp_api/v201203/line_item_service.rb +3 -3
  251. data/lib/dfp_api/v201203/line_item_service_registry.rb +1 -1
  252. data/lib/dfp_api/v201203/network_service.rb +3 -3
  253. data/lib/dfp_api/v201203/network_service_registry.rb +1 -1
  254. data/lib/dfp_api/v201203/order_service.rb +3 -3
  255. data/lib/dfp_api/v201203/order_service_registry.rb +1 -1
  256. data/lib/dfp_api/v201203/placement_service.rb +3 -3
  257. data/lib/dfp_api/v201203/placement_service_registry.rb +1 -1
  258. data/lib/dfp_api/v201203/publisher_query_language_service.rb +3 -3
  259. data/lib/dfp_api/v201203/publisher_query_language_service_registry.rb +1 -1
  260. data/lib/dfp_api/v201203/report_service.rb +3 -3
  261. data/lib/dfp_api/v201203/report_service_registry.rb +1 -1
  262. data/lib/dfp_api/v201203/suggested_ad_unit_service.rb +3 -3
  263. data/lib/dfp_api/v201203/suggested_ad_unit_service_registry.rb +2 -2
  264. data/lib/dfp_api/v201203/team_service.rb +3 -3
  265. data/lib/dfp_api/v201203/team_service_registry.rb +1 -1
  266. data/lib/dfp_api/v201203/third_party_slot_service.rb +3 -3
  267. data/lib/dfp_api/v201203/third_party_slot_service_registry.rb +1 -1
  268. data/lib/dfp_api/v201203/user_service.rb +3 -3
  269. data/lib/dfp_api/v201203/user_service_registry.rb +1 -1
  270. data/lib/dfp_api/v201204/audience_segment_service.rb +34 -0
  271. data/lib/dfp_api/v201204/audience_segment_service_registry.rb +46 -0
  272. data/lib/dfp_api/v201204/company_service.rb +54 -0
  273. data/lib/dfp_api/v201204/company_service_registry.rb +46 -0
  274. data/lib/dfp_api/v201204/content_service.rb +42 -0
  275. data/lib/dfp_api/v201204/content_service_registry.rb +46 -0
  276. data/lib/dfp_api/v201204/creative_service.rb +54 -0
  277. data/lib/dfp_api/v201204/creative_service_registry.rb +46 -0
  278. data/lib/dfp_api/v201204/creative_template_service.rb +38 -0
  279. data/lib/dfp_api/v201204/creative_template_service_registry.rb +46 -0
  280. data/lib/dfp_api/v201204/custom_field_service.rb +78 -0
  281. data/lib/dfp_api/v201204/custom_field_service_registry.rb +46 -0
  282. data/lib/dfp_api/v201204/custom_targeting_service.rb +62 -0
  283. data/lib/dfp_api/v201204/custom_targeting_service_registry.rb +46 -0
  284. data/lib/dfp_api/v201204/forecast_service.rb +38 -0
  285. data/lib/dfp_api/v201204/forecast_service_registry.rb +46 -0
  286. data/lib/dfp_api/v201204/inventory_service.rb +62 -0
  287. data/lib/dfp_api/v201204/inventory_service_registry.rb +46 -0
  288. data/lib/dfp_api/v201204/label_service.rb +58 -0
  289. data/lib/dfp_api/v201204/label_service_registry.rb +46 -0
  290. data/lib/dfp_api/v201204/line_item_creative_association_service.rb +62 -0
  291. data/lib/dfp_api/v201204/line_item_creative_association_service_registry.rb +46 -0
  292. data/lib/dfp_api/v201204/line_item_service.rb +58 -0
  293. data/lib/dfp_api/v201204/line_item_service_registry.rb +46 -0
  294. data/lib/dfp_api/v201204/network_service.rb +46 -0
  295. data/lib/dfp_api/v201204/network_service_registry.rb +46 -0
  296. data/lib/dfp_api/v201204/order_service.rb +58 -0
  297. data/lib/dfp_api/v201204/order_service_registry.rb +46 -0
  298. data/lib/dfp_api/v201204/placement_service.rb +58 -0
  299. data/lib/dfp_api/v201204/placement_service_registry.rb +46 -0
  300. data/lib/dfp_api/v201204/publisher_query_language_service.rb +34 -0
  301. data/lib/dfp_api/v201204/publisher_query_language_service_registry.rb +46 -0
  302. data/lib/dfp_api/v201204/report_service.rb +42 -0
  303. data/lib/dfp_api/v201204/report_service_registry.rb +46 -0
  304. data/lib/dfp_api/v201204/suggested_ad_unit_service.rb +42 -0
  305. data/lib/dfp_api/v201204/suggested_ad_unit_service_registry.rb +46 -0
  306. data/lib/dfp_api/v201204/team_service.rb +54 -0
  307. data/lib/dfp_api/v201204/team_service_registry.rb +46 -0
  308. data/lib/dfp_api/v201204/third_party_slot_service.rb +46 -0
  309. data/lib/dfp_api/v201204/third_party_slot_service_registry.rb +46 -0
  310. data/lib/dfp_api/v201204/user_service.rb +66 -0
  311. data/lib/dfp_api/v201204/user_service_registry.rb +46 -0
  312. data/lib/dfp_api/v201204/user_team_association_service.rb +58 -0
  313. data/lib/dfp_api/v201204/user_team_association_service_registry.rb +46 -0
  314. data/lib/dfp_api/version.rb +1 -1
  315. data/test/suite_unittests.rb +0 -3
  316. metadata +662 -498
  317. data/lib/dfp_api/extensions.rb +0 -54
  318. data/test/bugs/test_issue_00000016.rb +0 -155
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2012, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example gets all teams that the current user belongs to. The statement
22
+ # retrieves up to the maximum page size limit of 500. To create teams, run
23
+ # create_user_team_associations.rb.
24
+ #
25
+ # Tags: UserTeamAssociationService.getUserTeamAssociationsByStatement
26
+ # Tags: UserService.getCurrentUser
27
+
28
+ require 'dfp_api'
29
+
30
+ API_VERSION = :v201204
31
+ PAGE_SIZE = 500
32
+
33
+ def get_user_team_associations_by_statement()
34
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
35
+ dfp = DfpApi::Api.new
36
+
37
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
38
+ # the configuration file or provide your own logger:
39
+ # dfp.logger = Logger.new('dfp_xml.log')
40
+
41
+ # Get the UserTeamAssociationService.
42
+ uta_service = dfp.service(:UserTeamAssociationService, API_VERSION)
43
+
44
+ # Get the UserService.
45
+ user_service = dfp.service(:UserService, API_VERSION)
46
+
47
+ # Get the current user.
48
+ user = user_service.get_current_user()
49
+
50
+ # Create filter text to select user team associations by the user ID.
51
+ statement = {
52
+ :query => "WHERE userId = :user_id LIMIT %s" % PAGE_SIZE,
53
+ :values => [
54
+ {:key => 'user_id',
55
+ :value => {:value => user[:id], :xsi_type => 'NumberValue'}},
56
+ ]
57
+ }
58
+
59
+ # Get user team associations by statement.
60
+ page = uta_service.get_user_team_associations_by_statement(statement)
61
+
62
+ if page and page[:results]
63
+ page[:results].each_with_index do |association, index|
64
+ puts "%d) Team user association between team ID %d and user ID %d." %
65
+ [index, association[:team_id], association[:user_id]]
66
+ end
67
+ end
68
+
69
+ # Print a footer.
70
+ if page.include?(:total_result_set_size)
71
+ puts "Number of results found: %d" % page[:total_result_set_size]
72
+ end
73
+ end
74
+
75
+ if __FILE__ == $0
76
+ begin
77
+ get_user_team_associations_by_statement()
78
+
79
+ # HTTP errors.
80
+ rescue AdsCommon::Errors::HttpError => e
81
+ puts "HTTP Error: %s" % e
82
+
83
+ # API errors.
84
+ rescue DfpApi::Errors::ApiException => e
85
+ puts "Message: %s" % e.message
86
+ puts 'Errors:'
87
+ e.errors.each_with_index do |error, index|
88
+ puts "\tError [%d]:" % (index + 1)
89
+ error.each do |field, value|
90
+ puts "\t\t%s: %s" % [field, value]
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2012, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example updates user team associations. It updates a user team
22
+ # association by setting the overridden access type to read only for the first
23
+ # 500 teams that the user belongs to. To determine which users exists, run
24
+ # get_all_users.rb.
25
+ #
26
+ # Tags: UserTeamAssociationService.getUserTeamAssociationsByStatement
27
+ # Tags: UserTeamAssociationService.updateUserTeamAssociations
28
+
29
+ require 'dfp_api'
30
+
31
+ API_VERSION = :v201204
32
+ PAGE_SIZE = 500
33
+
34
+ def update_user_team_associations()
35
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
36
+ dfp = DfpApi::Api.new
37
+
38
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
39
+ # the configuration file or provide your own logger:
40
+ # dfp.logger = Logger.new('dfp_xml.log')
41
+
42
+ # Get the UserTeamAssociationService.
43
+ uta_service = dfp.service(:UserTeamAssociationService, API_VERSION)
44
+
45
+ # Set the user to set to read only access within its teams.
46
+ user_id = 'INSERT_USER_ID_HERE'.to_i
47
+
48
+ # Create filter text to select user team associations by the user ID.
49
+ statement = {
50
+ :query => "WHERE userId = :user_id LIMIT %s" % PAGE_SIZE,
51
+ :values => [
52
+ {:key => 'user_id',
53
+ :value => {:value => user_id, :xsi_type => 'NumberValue'}},
54
+ ]
55
+ }
56
+
57
+ # Get user team associations by statement.
58
+ page = uta_service.get_user_team_associations_by_statement(statement)
59
+
60
+ if page[:results] and !page[:results].empty?
61
+ associations = page[:results]
62
+ associations.each do |association|
63
+ # Update local user team association to read-only access.
64
+ association[:overridden_team_access_type] = 'READ_ONLY'
65
+ end
66
+
67
+ # Update the user team association on the server.
68
+ return_associations =
69
+ uta_service.update_user_team_associations(associations)
70
+
71
+ # Display results.
72
+ return_associations.each do |association|
73
+ puts ("User team association between user ID %d and team ID %d was " +
74
+ "updated with access type '%s'") %
75
+ [association[:user_id], association[:team_id],
76
+ association[:overridden_team_access_type]]
77
+ end
78
+ else
79
+ puts 'No user team associations were updated.'
80
+ end
81
+ end
82
+
83
+ if __FILE__ == $0
84
+ begin
85
+ update_user_team_associations()
86
+
87
+ # HTTP errors.
88
+ rescue AdsCommon::Errors::HttpError => e
89
+ puts "HTTP Error: %s" % e
90
+
91
+ # API errors.
92
+ rescue DfpApi::Errors::ApiException => e
93
+ puts "Message: %s" % e.message
94
+ puts 'Errors:'
95
+ e.errors.each_with_index do |error, index|
96
+ puts "\tError [%d]:" % (index + 1)
97
+ error.each do |field, value|
98
+ puts "\t\t%s: %s" % [field, value]
99
+ end
100
+ end
101
+ end
102
+ end
@@ -20,12 +20,10 @@
20
20
  # Contains the main classes for the client library. Takes care of all
21
21
  # dependencies.
22
22
 
23
- gem 'google-ads-common', '~>0.6.1'
23
+ gem 'google-ads-common', '~>0.7.0'
24
24
 
25
25
  require 'ads_common/api'
26
- require 'ads_common/savon_service'
27
26
  require 'ads_common/savon_headers/oauth_header_handler'
28
- require 'ads_common/savon_headers/simple_header_handler'
29
27
  require 'dfp_api/api_config'
30
28
  require 'dfp_api/client_login_header_handler'
31
29
  require 'dfp_api/credential_handler'
@@ -50,27 +48,23 @@ module DfpApi
50
48
  DfpApi::ApiConfig
51
49
  end
52
50
 
53
- # Sets the logger to use.
54
- def logger=(logger)
55
- super(logger)
56
- AdsCommon::SavonService.logger = logger
57
- end
58
-
59
51
  private
60
52
 
61
- # Retrieve DFP HeaderHandlers per credential.
62
- def soap_header_handlers(auth_handler, header_list, version, namespace)
63
- handler = nil
53
+ # Retrieve DFP HeaderHandler per credential.
54
+ def soap_header_handler(auth_handler, version, namespace)
64
55
  auth_method = @config.read('authentication.method', :CLIENTLOGIN)
65
56
  handler = case auth_method
66
57
  when :CLIENTLOGIN
67
58
  DfpApi::ClientLoginHeaderHandler
68
59
  when :OAUTH
69
60
  AdsCommon::SavonHeaders::OAuthHeaderHandler
61
+ else
62
+ raise AdsCommon::Errors::AuthError,
63
+ "Unknown auth method: %s" % auth_method
70
64
  end
71
- ns = api_config.headers_config[:HEADER_NAMESPACE_PREAMBLE] + version.to_s
72
- return [handler.new(@credential_handler, auth_handler,
73
- api_config.headers_config[:REQUEST_HEADER], ns, version)]
65
+ ns = api_config.client_login_config(:HEADER_NAMESPACE_PREAMBLE) +
66
+ version.to_s
67
+ return handler.new(@credential_handler, auth_handler, ns, version)
74
68
  end
75
69
  end
76
70
  end
@@ -1,4 +1,5 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
2
3
  #
3
4
  # Authors:: api.dklimkin@gmail.com (Danial Klimkin)
4
5
  #
@@ -34,9 +35,9 @@ module DfpApi
34
35
  end
35
36
 
36
37
  # Set defaults
37
- DEFAULT_VERSION = :v201203
38
+ DEFAULT_VERSION = :v201204
38
39
  DEFAULT_ENVIRONMENT = :PRODUCTION
39
- LATEST_VERSION = :v201203
40
+ LATEST_VERSION = :v201204
40
41
 
41
42
  # Set other constants
42
43
  API_NAME = 'DfpApi'
@@ -72,7 +73,16 @@ module DfpApi
72
73
  :CustomTargetingService, :PublisherQueryLanguageService,
73
74
  :LabelService, :ThirdPartySlotService, :ContentService,
74
75
  :SuggestedAdUnitService, :CreativeTemplateService,
75
- :TeamService, :AudienceSegmentService]
76
+ :TeamService, :AudienceSegmentService],
77
+ :v201204 => [:CompanyService, :CreativeService, :ForecastService,
78
+ :InventoryService, :LineItemCreativeAssociationService,
79
+ :LineItemService, :NetworkService, :OrderService,
80
+ :PlacementService, :ReportService, :UserService,
81
+ :CustomTargetingService, :PublisherQueryLanguageService,
82
+ :LabelService, :ThirdPartySlotService, :ContentService,
83
+ :SuggestedAdUnitService, :CreativeTemplateService,
84
+ :TeamService, :AudienceSegmentService, :CustomFieldService,
85
+ :UserTeamAssociationService]
76
86
  }
77
87
 
78
88
  # Configure the different environments, with the base URL for each one
@@ -82,17 +92,14 @@ module DfpApi
82
92
  :v201108 => 'https://www.google.com/apis/ads/publisher/',
83
93
  :v201111 => 'https://www.google.com/apis/ads/publisher/',
84
94
  :v201201 => 'https://www.google.com/apis/ads/publisher/',
85
- :v201203 => 'https://www.google.com/apis/ads/publisher/'
95
+ :v201203 => 'https://www.google.com/apis/ads/publisher/',
96
+ :v201204 => 'https://www.google.com/apis/ads/publisher/'
86
97
  }
87
98
  }
88
99
 
89
- # Configure the auth servers to use for each environment
90
- @@auth_server_config = {
91
- :PRODUCTION => 'https://www.google.com'
92
- }
93
-
94
- @@headers_config = {
95
- :REQUEST_HEADER => 'RequestHeader',
100
+ # Auth constants for ClientLogin method.
101
+ @@client_login_config = {
102
+ :AUTH_SERVER => 'https://www.google.com',
96
103
  :HEADER_NAMESPACE_PREAMBLE =>
97
104
  'https://www.google.com/apis/ads/publisher/',
98
105
  :LOGIN_SERVICE_NAME => 'gam'
@@ -121,24 +128,21 @@ module DfpApi
121
128
  @@service_config
122
129
  end
123
130
 
124
- def self.environment_config
125
- @@environment_config
131
+ def self.environment_config(environment, key)
132
+ return @@environment_config.include?(environment) ?
133
+ @@environment_config[environment][key] : nil
126
134
  end
127
135
 
128
136
  def self.subdir_config
129
137
  nil
130
138
  end
131
139
 
132
- def self.auth_server_config
133
- @@auth_server_config
140
+ def self.client_login_config(key)
141
+ return @@client_login_config[key]
134
142
  end
135
143
 
136
144
  def self.default_config_filename
137
145
  DEFAULT_CONFIG_FILENAME
138
146
  end
139
-
140
- def self.headers_config
141
- @@headers_config
142
- end
143
147
  end
144
148
  end
@@ -1,4 +1,5 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
2
3
  #
3
4
  # Authors:: api.dklimkin@gmail.com (Danial Klimkin)
4
5
  #
@@ -19,14 +20,14 @@
19
20
  #
20
21
  # Handles SOAP headers and namespaces definition for ClientLogin type header.
21
22
 
22
- require 'ads_common/savon_headers/simple_header_handler'
23
+ require 'ads_common/savon_headers/base_header_handler'
23
24
 
24
25
  module DfpApi
25
- class ClientLoginHeaderHandler < AdsCommon::SavonHeaders::SimpleHeaderHandler
26
+ class ClientLoginHeaderHandler < AdsCommon::SavonHeaders::BaseHeaderHandler
26
27
  private
27
28
 
28
- # Generates SOAP request header with login credentials and namespace
29
- # definition.
29
+ # Generates DFP API specific request header with ClientLogin data in
30
+ # required namespace.
30
31
  #
31
32
  # Args:
32
33
  # - None
@@ -35,22 +36,17 @@ module DfpApi
35
36
  # - Hash containing a header with filled in credentials
36
37
  #
37
38
  def generate_request_header()
38
- headers = @auth_handler.headers(@credential_handler.credentials)
39
- return headers.inject({}) do |request_header, (header, value)|
40
- if header == :authToken
41
- auth_header = prepend_namespace('authentication')
42
- request_header[auth_header] = {
43
- prepend_namespace('token') => value
44
- }
45
- request_header[:attributes!] ||= {}
46
- request_header[:attributes!][auth_header] = {
47
- 'xsi:type' => prepend_namespace('ClientLogin'),
48
- }
49
- else
50
- request_header[prepend_namespace(header)] = value
51
- end
52
- request_header
53
- end
39
+ request_header = super()
40
+ auth_header = prepend_namespace('authentication')
41
+ credentials = @credential_handler.credentials
42
+ request_header[auth_header] = {
43
+ prepend_namespace('token') => @auth_handler.get_token(credentials)
44
+ }
45
+ request_header[:attributes!] ||= {}
46
+ request_header[:attributes!][auth_header] = {
47
+ 'xsi:type' => prepend_namespace('ClientLogin'),
48
+ }
49
+ return request_header
54
50
  end
55
51
  end
56
52
  end
@@ -26,37 +26,29 @@ module DfpApi
26
26
  class CredentialHandler < AdsCommon::CredentialHandler
27
27
  # Create the list of credentials to be used by the auth handler for header
28
28
  # generation.
29
- def credentials(version = nil)
30
- validate_headers_for_server()
29
+ def credentials(credentials_override = nil)
30
+ result = super(credentials_override)
31
+ validate_headers_for_server(result)
32
+ result[:extra_headers] = {
33
+ 'applicationName' => generate_soap_user_agent(),
34
+ 'networkCode' => result[:network_code]
35
+ }
36
+ return result
37
+ end
31
38
 
32
- result = case @credentials[:method]
33
- when :CLIENTLOGIN
34
- {:email => @credentials[:email],
35
- :password => @credentials[:password],
36
- :auth_token => @credentials[:auth_token]}
37
- when :OAUTH
38
- {:oauth_consumer_key => @credentials[:oauth_consumer_key],
39
- :oauth_consumer_secret => @credentials[:oauth_consumer_secret],
40
- :oauth_verification_code => @credentials[:oauth_verification_code],
41
- :oauth_token => @credentials[:oauth_token],
42
- :oauth_token_secret => @credentials[:oauth_token_secret],
43
- :oauth_callback => @credentials[:oauth_callback],
44
- :oauth_method => @credentials[:oauth_method],
45
- :oauth_request_token => @credentials[:oauth_request_token]}
46
- end
47
- client_lib = "DfpApi-Ruby-%s" % DfpApi::ApiConfig::CLIENT_LIB_VERSION
48
- application_name = @credentials[:application_name] || $0
49
- result[:applicationName] = "%s|%s" % [client_lib, application_name]
50
- result[:networkCode] = @credentials[:network_code]
51
- return result.reject {|k, v| v.nil?}
39
+ # Generates string to user as user agent in SOAP headers.
40
+ def generate_soap_user_agent(extra_ids = [])
41
+ extra_ids << ["DfpApi-Ruby-%s" % DfpApi::ApiConfig::CLIENT_LIB_VERSION]
42
+ super(extra_ids)
52
43
  end
53
44
 
54
45
  private
55
46
 
56
47
  # Validates that the right credentials are being used for the chosen
57
48
  # environment.
58
- def validate_headers_for_server()
59
- if @credentials[:application_name].nil?
49
+ # TODO(dklimkin): implement NetworkCode check.
50
+ def validate_headers_for_server(credentials)
51
+ if credentials[:application_name].nil?
60
52
  raise AdsCommon::Errors::AuthError, 'Application name is not specified'
61
53
  end
62
54
  return nil