google-dfp-api 0.3.2 → 0.3.3

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 (363) hide show
  1. data/ChangeLog +3 -0
  2. data/README +2 -2
  3. data/examples/v201206/audience_segment_service/get_all_audience_segments.rb +93 -0
  4. data/examples/v201206/common/error_handling.rb +76 -0
  5. data/examples/v201206/common/oauth2_handling.rb +128 -0
  6. data/examples/v201206/common/oauth_handling.rb +131 -0
  7. data/examples/v201206/company_service/create_companies.rb +81 -0
  8. data/examples/v201206/company_service/get_all_companies.rb +92 -0
  9. data/examples/v201206/company_service/get_companies_by_statement.rb +88 -0
  10. data/examples/v201206/company_service/get_company.rb +72 -0
  11. data/examples/v201206/company_service/update_companies.rb +95 -0
  12. data/examples/v201206/content_service/get_all_content.rb +94 -0
  13. data/examples/v201206/content_service/get_content_by_category.rb +136 -0
  14. data/examples/v201206/creative_service/copy_image_creatives.rb +115 -0
  15. data/examples/v201206/creative_service/create_creative_from_template.rb +139 -0
  16. data/examples/v201206/creative_service/create_creatives.rb +106 -0
  17. data/examples/v201206/creative_service/create_custom_creative.rb +104 -0
  18. data/examples/v201206/creative_service/get_all_creatives.rb +93 -0
  19. data/examples/v201206/creative_service/get_creative.rb +72 -0
  20. data/examples/v201206/creative_service/get_creatives_by_statement.rb +87 -0
  21. data/examples/v201206/creative_service/update_creatives.rb +96 -0
  22. data/examples/v201206/creative_set_service/create_creative_set.rb +83 -0
  23. data/examples/v201206/creative_set_service/get_all_creative_sets.rb +94 -0
  24. data/examples/v201206/creative_set_service/get_creative_sets_by_statement.rb +90 -0
  25. data/examples/v201206/creative_set_service/update_creative_sets.rb +85 -0
  26. data/examples/v201206/creative_template_service/get_all_creative_templates.rb +94 -0
  27. data/examples/v201206/creative_template_service/get_creative_template.rb +74 -0
  28. data/examples/v201206/creative_template_service/get_creative_templates_by_statement.rb +80 -0
  29. data/examples/v201206/custom_field_service/create_custom_field_options.rb +87 -0
  30. data/examples/v201206/custom_field_service/create_custom_fields.rb +86 -0
  31. data/examples/v201206/custom_field_service/deactivate_all_line_item_custom_fields.rb +112 -0
  32. data/examples/v201206/custom_field_service/get_all_custom_fields.rb +102 -0
  33. data/examples/v201206/custom_field_service/get_all_line_item_custom_fields.rb +86 -0
  34. data/examples/v201206/custom_field_service/set_line_item_custom_field_value.rb +135 -0
  35. data/examples/v201206/custom_field_service/update_custom_fields.rb +83 -0
  36. data/examples/v201206/custom_targeting_service/create_custom_targeting_keys_and_values.rb +140 -0
  37. data/examples/v201206/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
  38. data/examples/v201206/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
  39. data/examples/v201206/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
  40. data/examples/v201206/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
  41. data/examples/v201206/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
  42. data/examples/v201206/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
  43. data/examples/v201206/custom_targeting_service/update_custom_targeting_values.rb +106 -0
  44. data/examples/v201206/forecast_service/get_forecast.rb +107 -0
  45. data/examples/v201206/forecast_service/get_forecast_by_id.rb +80 -0
  46. data/examples/v201206/inventory_service/create_ad_units.rb +101 -0
  47. data/examples/v201206/inventory_service/create_mobile_ad_unit.rb +100 -0
  48. data/examples/v201206/inventory_service/create_video_ad_unit.rb +108 -0
  49. data/examples/v201206/inventory_service/deactivate_ad_units.rb +119 -0
  50. data/examples/v201206/inventory_service/get_ad_unit.rb +72 -0
  51. data/examples/v201206/inventory_service/get_ad_unit_sizes.rb +85 -0
  52. data/examples/v201206/inventory_service/get_ad_units_by_statement.rb +96 -0
  53. data/examples/v201206/inventory_service/get_all_ad_units.rb +93 -0
  54. data/examples/v201206/inventory_service/update_ad_units.rb +94 -0
  55. data/examples/v201206/label_service/create_labels.rb +83 -0
  56. data/examples/v201206/label_service/deactivate_labels.rb +118 -0
  57. data/examples/v201206/label_service/get_all_labels.rb +95 -0
  58. data/examples/v201206/label_service/get_label.rb +76 -0
  59. data/examples/v201206/label_service/get_labels_by_statement.rb +81 -0
  60. data/examples/v201206/label_service/update_labels.rb +102 -0
  61. data/examples/v201206/line_item_creative_association_service/create_licas.rb +94 -0
  62. data/examples/v201206/line_item_creative_association_service/deactivate_licas.rb +127 -0
  63. data/examples/v201206/line_item_creative_association_service/get_all_licas.rb +95 -0
  64. data/examples/v201206/line_item_creative_association_service/get_lica.rb +77 -0
  65. data/examples/v201206/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
  66. data/examples/v201206/line_item_creative_association_service/update_licas.rb +91 -0
  67. data/examples/v201206/line_item_service/activate_line_items.rb +131 -0
  68. data/examples/v201206/line_item_service/create_line_items.rb +177 -0
  69. data/examples/v201206/line_item_service/create_mobile_line_item.rb +135 -0
  70. data/examples/v201206/line_item_service/create_video_line_item.rb +156 -0
  71. data/examples/v201206/line_item_service/get_all_line_items.rb +94 -0
  72. data/examples/v201206/line_item_service/get_line_item.rb +74 -0
  73. data/examples/v201206/line_item_service/get_line_items_by_statement.rb +93 -0
  74. data/examples/v201206/line_item_service/get_recently_updated_line_items.rb +98 -0
  75. data/examples/v201206/line_item_service/target_custom_criteria.rb +129 -0
  76. data/examples/v201206/line_item_service/update_line_items.rb +109 -0
  77. data/examples/v201206/network_service/get_all_networks.rb +74 -0
  78. data/examples/v201206/network_service/get_current_network.rb +66 -0
  79. data/examples/v201206/network_service/make_test_network.rb +76 -0
  80. data/examples/v201206/order_service/approve_orders.rb +122 -0
  81. data/examples/v201206/order_service/create_orders.rb +92 -0
  82. data/examples/v201206/order_service/get_all_orders.rb +93 -0
  83. data/examples/v201206/order_service/get_order.rb +74 -0
  84. data/examples/v201206/order_service/get_orders_by_statement.rb +90 -0
  85. data/examples/v201206/order_service/update_orders.rb +95 -0
  86. data/examples/v201206/placement_service/create_placements.rb +131 -0
  87. data/examples/v201206/placement_service/deactivate_placements.rb +118 -0
  88. data/examples/v201206/placement_service/get_all_placements.rb +93 -0
  89. data/examples/v201206/placement_service/get_placement.rb +74 -0
  90. data/examples/v201206/placement_service/get_placements_by_statement.rb +86 -0
  91. data/examples/v201206/placement_service/update_placements.rb +97 -0
  92. data/examples/v201206/publisher_query_language_service/get_all_cities.rb +90 -0
  93. data/examples/v201206/report_service/download_report.rb +81 -0
  94. data/examples/v201206/report_service/run_delivery_report.rb +103 -0
  95. data/examples/v201206/report_service/run_inventory_report.rb +97 -0
  96. data/examples/v201206/report_service/run_merged_delivery_report.rb +94 -0
  97. data/examples/v201206/report_service/run_sales_report.rb +92 -0
  98. data/examples/v201206/suggested_ad_unit_service/approve_all_suggested_ad_units.rb +109 -0
  99. data/examples/v201206/suggested_ad_unit_service/get_all_suggested_ad_units.rb +96 -0
  100. data/examples/v201206/suggested_ad_unit_service/get_suggested_ad_unit.rb +75 -0
  101. data/examples/v201206/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +92 -0
  102. data/examples/v201206/team_service/create_teams.rb +83 -0
  103. data/examples/v201206/team_service/get_all_teams.rb +92 -0
  104. data/examples/v201206/team_service/get_team.rb +74 -0
  105. data/examples/v201206/team_service/get_teams_by_statement.rb +78 -0
  106. data/examples/v201206/team_service/update_teams.rb +95 -0
  107. data/examples/v201206/third_party_slot_service/archive_third_party_slots.rb +125 -0
  108. data/examples/v201206/third_party_slot_service/create_third_party_slot.rb +91 -0
  109. data/examples/v201206/third_party_slot_service/get_all_third_party_slots.rb +93 -0
  110. data/examples/v201206/third_party_slot_service/get_third_party_slot_by_statement.rb +86 -0
  111. data/examples/v201206/third_party_slot_service/update_third_party_slots.rb +95 -0
  112. data/examples/v201206/user_service/create_users.rb +89 -0
  113. data/examples/v201206/user_service/deactivate_users.rb +97 -0
  114. data/examples/v201206/user_service/get_all_roles.rb +73 -0
  115. data/examples/v201206/user_service/get_all_users.rb +93 -0
  116. data/examples/v201206/user_service/get_current_user.rb +66 -0
  117. data/examples/v201206/user_service/get_user.rb +73 -0
  118. data/examples/v201206/user_service/get_users_by_statement.rb +79 -0
  119. data/examples/v201206/user_service/update_users.rb +89 -0
  120. data/examples/v201206/user_team_association_service/create_user_team_associations.rb +86 -0
  121. data/examples/v201206/user_team_association_service/delete_user_team_associations.rb +111 -0
  122. data/examples/v201206/user_team_association_service/get_all_user_team_associations.rb +94 -0
  123. data/examples/v201206/user_team_association_service/get_user_team_association.rb +76 -0
  124. data/examples/v201206/user_team_association_service/get_user_team_associations_by_statement.rb +94 -0
  125. data/examples/v201206/user_team_association_service/update_user_team_associations.rb +102 -0
  126. data/lib/dfp_api/api_config.rb +14 -4
  127. data/lib/dfp_api/v201108/company_service.rb +1 -1
  128. data/lib/dfp_api/v201108/company_service_registry.rb +1 -1
  129. data/lib/dfp_api/v201108/creative_service.rb +1 -1
  130. data/lib/dfp_api/v201108/creative_service_registry.rb +1 -1
  131. data/lib/dfp_api/v201108/custom_targeting_service.rb +1 -1
  132. data/lib/dfp_api/v201108/custom_targeting_service_registry.rb +1 -1
  133. data/lib/dfp_api/v201108/forecast_service.rb +1 -1
  134. data/lib/dfp_api/v201108/forecast_service_registry.rb +1 -1
  135. data/lib/dfp_api/v201108/inventory_service.rb +1 -1
  136. data/lib/dfp_api/v201108/inventory_service_registry.rb +1 -1
  137. data/lib/dfp_api/v201108/label_service.rb +1 -1
  138. data/lib/dfp_api/v201108/label_service_registry.rb +1 -1
  139. data/lib/dfp_api/v201108/line_item_creative_association_service.rb +1 -1
  140. data/lib/dfp_api/v201108/line_item_creative_association_service_registry.rb +1 -1
  141. data/lib/dfp_api/v201108/line_item_service.rb +1 -1
  142. data/lib/dfp_api/v201108/line_item_service_registry.rb +1 -1
  143. data/lib/dfp_api/v201108/network_service.rb +1 -1
  144. data/lib/dfp_api/v201108/network_service_registry.rb +1 -1
  145. data/lib/dfp_api/v201108/order_service.rb +1 -1
  146. data/lib/dfp_api/v201108/order_service_registry.rb +1 -1
  147. data/lib/dfp_api/v201108/placement_service.rb +1 -1
  148. data/lib/dfp_api/v201108/placement_service_registry.rb +1 -1
  149. data/lib/dfp_api/v201108/publisher_query_language_service.rb +1 -1
  150. data/lib/dfp_api/v201108/publisher_query_language_service_registry.rb +1 -1
  151. data/lib/dfp_api/v201108/report_service.rb +1 -1
  152. data/lib/dfp_api/v201108/report_service_registry.rb +1 -1
  153. data/lib/dfp_api/v201108/third_party_slot_service.rb +1 -1
  154. data/lib/dfp_api/v201108/third_party_slot_service_registry.rb +1 -1
  155. data/lib/dfp_api/v201108/user_service.rb +1 -1
  156. data/lib/dfp_api/v201108/user_service_registry.rb +1 -1
  157. data/lib/dfp_api/v201111/company_service.rb +1 -1
  158. data/lib/dfp_api/v201111/company_service_registry.rb +1 -1
  159. data/lib/dfp_api/v201111/content_service.rb +1 -1
  160. data/lib/dfp_api/v201111/content_service_registry.rb +1 -1
  161. data/lib/dfp_api/v201111/creative_service.rb +1 -1
  162. data/lib/dfp_api/v201111/creative_service_registry.rb +1 -1
  163. data/lib/dfp_api/v201111/creative_template_service.rb +1 -1
  164. data/lib/dfp_api/v201111/creative_template_service_registry.rb +1 -1
  165. data/lib/dfp_api/v201111/custom_targeting_service.rb +1 -1
  166. data/lib/dfp_api/v201111/custom_targeting_service_registry.rb +1 -1
  167. data/lib/dfp_api/v201111/forecast_service.rb +1 -1
  168. data/lib/dfp_api/v201111/forecast_service_registry.rb +1 -1
  169. data/lib/dfp_api/v201111/inventory_service.rb +1 -1
  170. data/lib/dfp_api/v201111/inventory_service_registry.rb +1 -1
  171. data/lib/dfp_api/v201111/label_service.rb +1 -1
  172. data/lib/dfp_api/v201111/label_service_registry.rb +1 -1
  173. data/lib/dfp_api/v201111/line_item_creative_association_service.rb +1 -1
  174. data/lib/dfp_api/v201111/line_item_creative_association_service_registry.rb +1 -1
  175. data/lib/dfp_api/v201111/line_item_service.rb +1 -1
  176. data/lib/dfp_api/v201111/line_item_service_registry.rb +1 -1
  177. data/lib/dfp_api/v201111/network_service.rb +1 -1
  178. data/lib/dfp_api/v201111/network_service_registry.rb +1 -1
  179. data/lib/dfp_api/v201111/order_service.rb +1 -1
  180. data/lib/dfp_api/v201111/order_service_registry.rb +1 -1
  181. data/lib/dfp_api/v201111/placement_service.rb +1 -1
  182. data/lib/dfp_api/v201111/placement_service_registry.rb +1 -1
  183. data/lib/dfp_api/v201111/publisher_query_language_service.rb +1 -1
  184. data/lib/dfp_api/v201111/publisher_query_language_service_registry.rb +1 -1
  185. data/lib/dfp_api/v201111/report_service.rb +1 -1
  186. data/lib/dfp_api/v201111/report_service_registry.rb +1 -1
  187. data/lib/dfp_api/v201111/suggested_ad_unit_service.rb +1 -1
  188. data/lib/dfp_api/v201111/suggested_ad_unit_service_registry.rb +1 -1
  189. data/lib/dfp_api/v201111/third_party_slot_service.rb +1 -1
  190. data/lib/dfp_api/v201111/third_party_slot_service_registry.rb +1 -1
  191. data/lib/dfp_api/v201111/user_service.rb +1 -1
  192. data/lib/dfp_api/v201111/user_service_registry.rb +1 -1
  193. data/lib/dfp_api/v201201/company_service.rb +1 -1
  194. data/lib/dfp_api/v201201/company_service_registry.rb +1 -1
  195. data/lib/dfp_api/v201201/content_service.rb +1 -1
  196. data/lib/dfp_api/v201201/content_service_registry.rb +1 -1
  197. data/lib/dfp_api/v201201/creative_service.rb +1 -1
  198. data/lib/dfp_api/v201201/creative_service_registry.rb +1 -1
  199. data/lib/dfp_api/v201201/creative_template_service.rb +1 -1
  200. data/lib/dfp_api/v201201/creative_template_service_registry.rb +1 -1
  201. data/lib/dfp_api/v201201/custom_targeting_service.rb +1 -1
  202. data/lib/dfp_api/v201201/custom_targeting_service_registry.rb +1 -1
  203. data/lib/dfp_api/v201201/forecast_service.rb +1 -1
  204. data/lib/dfp_api/v201201/forecast_service_registry.rb +1 -1
  205. data/lib/dfp_api/v201201/inventory_service.rb +1 -1
  206. data/lib/dfp_api/v201201/inventory_service_registry.rb +1 -1
  207. data/lib/dfp_api/v201201/label_service.rb +1 -1
  208. data/lib/dfp_api/v201201/label_service_registry.rb +1 -1
  209. data/lib/dfp_api/v201201/line_item_creative_association_service.rb +1 -1
  210. data/lib/dfp_api/v201201/line_item_creative_association_service_registry.rb +1 -1
  211. data/lib/dfp_api/v201201/line_item_service.rb +1 -1
  212. data/lib/dfp_api/v201201/line_item_service_registry.rb +1 -1
  213. data/lib/dfp_api/v201201/network_service.rb +1 -1
  214. data/lib/dfp_api/v201201/network_service_registry.rb +1 -1
  215. data/lib/dfp_api/v201201/order_service.rb +1 -1
  216. data/lib/dfp_api/v201201/order_service_registry.rb +1 -1
  217. data/lib/dfp_api/v201201/placement_service.rb +1 -1
  218. data/lib/dfp_api/v201201/placement_service_registry.rb +1 -1
  219. data/lib/dfp_api/v201201/publisher_query_language_service.rb +1 -1
  220. data/lib/dfp_api/v201201/publisher_query_language_service_registry.rb +1 -1
  221. data/lib/dfp_api/v201201/report_service.rb +1 -1
  222. data/lib/dfp_api/v201201/report_service_registry.rb +1 -1
  223. data/lib/dfp_api/v201201/suggested_ad_unit_service.rb +1 -1
  224. data/lib/dfp_api/v201201/suggested_ad_unit_service_registry.rb +1 -1
  225. data/lib/dfp_api/v201201/team_service.rb +1 -1
  226. data/lib/dfp_api/v201201/team_service_registry.rb +1 -1
  227. data/lib/dfp_api/v201201/third_party_slot_service.rb +1 -1
  228. data/lib/dfp_api/v201201/third_party_slot_service_registry.rb +1 -1
  229. data/lib/dfp_api/v201201/user_service.rb +1 -1
  230. data/lib/dfp_api/v201201/user_service_registry.rb +1 -1
  231. data/lib/dfp_api/v201203/audience_segment_service.rb +1 -1
  232. data/lib/dfp_api/v201203/audience_segment_service_registry.rb +1 -1
  233. data/lib/dfp_api/v201203/company_service.rb +1 -1
  234. data/lib/dfp_api/v201203/company_service_registry.rb +1 -1
  235. data/lib/dfp_api/v201203/content_service.rb +1 -1
  236. data/lib/dfp_api/v201203/content_service_registry.rb +1 -1
  237. data/lib/dfp_api/v201203/creative_service.rb +1 -1
  238. data/lib/dfp_api/v201203/creative_service_registry.rb +1 -1
  239. data/lib/dfp_api/v201203/creative_template_service.rb +1 -1
  240. data/lib/dfp_api/v201203/creative_template_service_registry.rb +1 -1
  241. data/lib/dfp_api/v201203/custom_targeting_service.rb +1 -1
  242. data/lib/dfp_api/v201203/custom_targeting_service_registry.rb +1 -1
  243. data/lib/dfp_api/v201203/forecast_service.rb +1 -1
  244. data/lib/dfp_api/v201203/forecast_service_registry.rb +1 -1
  245. data/lib/dfp_api/v201203/inventory_service.rb +1 -1
  246. data/lib/dfp_api/v201203/inventory_service_registry.rb +1 -1
  247. data/lib/dfp_api/v201203/label_service.rb +1 -1
  248. data/lib/dfp_api/v201203/label_service_registry.rb +1 -1
  249. data/lib/dfp_api/v201203/line_item_creative_association_service.rb +1 -1
  250. data/lib/dfp_api/v201203/line_item_creative_association_service_registry.rb +1 -1
  251. data/lib/dfp_api/v201203/line_item_service.rb +1 -1
  252. data/lib/dfp_api/v201203/line_item_service_registry.rb +1 -1
  253. data/lib/dfp_api/v201203/network_service.rb +1 -1
  254. data/lib/dfp_api/v201203/network_service_registry.rb +1 -1
  255. data/lib/dfp_api/v201203/order_service.rb +1 -1
  256. data/lib/dfp_api/v201203/order_service_registry.rb +1 -1
  257. data/lib/dfp_api/v201203/placement_service.rb +1 -1
  258. data/lib/dfp_api/v201203/placement_service_registry.rb +1 -1
  259. data/lib/dfp_api/v201203/publisher_query_language_service.rb +1 -1
  260. data/lib/dfp_api/v201203/publisher_query_language_service_registry.rb +1 -1
  261. data/lib/dfp_api/v201203/report_service.rb +1 -1
  262. data/lib/dfp_api/v201203/report_service_registry.rb +1 -1
  263. data/lib/dfp_api/v201203/suggested_ad_unit_service.rb +1 -1
  264. data/lib/dfp_api/v201203/suggested_ad_unit_service_registry.rb +1 -1
  265. data/lib/dfp_api/v201203/team_service.rb +1 -1
  266. data/lib/dfp_api/v201203/team_service_registry.rb +1 -1
  267. data/lib/dfp_api/v201203/third_party_slot_service.rb +1 -1
  268. data/lib/dfp_api/v201203/third_party_slot_service_registry.rb +1 -1
  269. data/lib/dfp_api/v201203/user_service.rb +1 -1
  270. data/lib/dfp_api/v201203/user_service_registry.rb +1 -1
  271. data/lib/dfp_api/v201204/audience_segment_service.rb +1 -1
  272. data/lib/dfp_api/v201204/audience_segment_service_registry.rb +1 -1
  273. data/lib/dfp_api/v201204/company_service.rb +1 -1
  274. data/lib/dfp_api/v201204/company_service_registry.rb +1 -1
  275. data/lib/dfp_api/v201204/content_service.rb +1 -1
  276. data/lib/dfp_api/v201204/content_service_registry.rb +1 -1
  277. data/lib/dfp_api/v201204/creative_service.rb +1 -1
  278. data/lib/dfp_api/v201204/creative_service_registry.rb +1 -1
  279. data/lib/dfp_api/v201204/creative_template_service.rb +1 -1
  280. data/lib/dfp_api/v201204/creative_template_service_registry.rb +1 -1
  281. data/lib/dfp_api/v201204/custom_field_service.rb +1 -1
  282. data/lib/dfp_api/v201204/custom_field_service_registry.rb +1 -1
  283. data/lib/dfp_api/v201204/custom_targeting_service.rb +1 -1
  284. data/lib/dfp_api/v201204/custom_targeting_service_registry.rb +1 -1
  285. data/lib/dfp_api/v201204/forecast_service.rb +1 -1
  286. data/lib/dfp_api/v201204/forecast_service_registry.rb +1 -1
  287. data/lib/dfp_api/v201204/inventory_service.rb +1 -1
  288. data/lib/dfp_api/v201204/inventory_service_registry.rb +1 -1
  289. data/lib/dfp_api/v201204/label_service.rb +1 -1
  290. data/lib/dfp_api/v201204/label_service_registry.rb +1 -1
  291. data/lib/dfp_api/v201204/line_item_creative_association_service.rb +1 -1
  292. data/lib/dfp_api/v201204/line_item_creative_association_service_registry.rb +1 -1
  293. data/lib/dfp_api/v201204/line_item_service.rb +1 -1
  294. data/lib/dfp_api/v201204/line_item_service_registry.rb +1 -1
  295. data/lib/dfp_api/v201204/network_service.rb +1 -1
  296. data/lib/dfp_api/v201204/network_service_registry.rb +1 -1
  297. data/lib/dfp_api/v201204/order_service.rb +1 -1
  298. data/lib/dfp_api/v201204/order_service_registry.rb +1 -1
  299. data/lib/dfp_api/v201204/placement_service.rb +1 -1
  300. data/lib/dfp_api/v201204/placement_service_registry.rb +1 -1
  301. data/lib/dfp_api/v201204/publisher_query_language_service.rb +1 -1
  302. data/lib/dfp_api/v201204/publisher_query_language_service_registry.rb +1 -1
  303. data/lib/dfp_api/v201204/report_service.rb +1 -1
  304. data/lib/dfp_api/v201204/report_service_registry.rb +1 -1
  305. data/lib/dfp_api/v201204/suggested_ad_unit_service.rb +1 -1
  306. data/lib/dfp_api/v201204/suggested_ad_unit_service_registry.rb +1 -1
  307. data/lib/dfp_api/v201204/team_service.rb +1 -1
  308. data/lib/dfp_api/v201204/team_service_registry.rb +1 -1
  309. data/lib/dfp_api/v201204/third_party_slot_service.rb +1 -1
  310. data/lib/dfp_api/v201204/third_party_slot_service_registry.rb +1 -1
  311. data/lib/dfp_api/v201204/user_service.rb +1 -1
  312. data/lib/dfp_api/v201204/user_service_registry.rb +1 -1
  313. data/lib/dfp_api/v201204/user_team_association_service.rb +1 -1
  314. data/lib/dfp_api/v201204/user_team_association_service_registry.rb +1 -1
  315. data/lib/dfp_api/v201206/audience_segment_service.rb +34 -0
  316. data/lib/dfp_api/v201206/audience_segment_service_registry.rb +46 -0
  317. data/lib/dfp_api/v201206/company_service.rb +54 -0
  318. data/lib/dfp_api/v201206/company_service_registry.rb +46 -0
  319. data/lib/dfp_api/v201206/content_service.rb +42 -0
  320. data/lib/dfp_api/v201206/content_service_registry.rb +46 -0
  321. data/lib/dfp_api/v201206/creative_service.rb +54 -0
  322. data/lib/dfp_api/v201206/creative_service_registry.rb +46 -0
  323. data/lib/dfp_api/v201206/creative_set_service.rb +46 -0
  324. data/lib/dfp_api/v201206/creative_set_service_registry.rb +46 -0
  325. data/lib/dfp_api/v201206/creative_template_service.rb +38 -0
  326. data/lib/dfp_api/v201206/creative_template_service_registry.rb +46 -0
  327. data/lib/dfp_api/v201206/custom_field_service.rb +78 -0
  328. data/lib/dfp_api/v201206/custom_field_service_registry.rb +46 -0
  329. data/lib/dfp_api/v201206/custom_targeting_service.rb +62 -0
  330. data/lib/dfp_api/v201206/custom_targeting_service_registry.rb +46 -0
  331. data/lib/dfp_api/v201206/forecast_service.rb +38 -0
  332. data/lib/dfp_api/v201206/forecast_service_registry.rb +46 -0
  333. data/lib/dfp_api/v201206/inventory_service.rb +62 -0
  334. data/lib/dfp_api/v201206/inventory_service_registry.rb +46 -0
  335. data/lib/dfp_api/v201206/label_service.rb +58 -0
  336. data/lib/dfp_api/v201206/label_service_registry.rb +46 -0
  337. data/lib/dfp_api/v201206/line_item_creative_association_service.rb +62 -0
  338. data/lib/dfp_api/v201206/line_item_creative_association_service_registry.rb +46 -0
  339. data/lib/dfp_api/v201206/line_item_service.rb +58 -0
  340. data/lib/dfp_api/v201206/line_item_service_registry.rb +46 -0
  341. data/lib/dfp_api/v201206/network_service.rb +46 -0
  342. data/lib/dfp_api/v201206/network_service_registry.rb +46 -0
  343. data/lib/dfp_api/v201206/order_service.rb +58 -0
  344. data/lib/dfp_api/v201206/order_service_registry.rb +46 -0
  345. data/lib/dfp_api/v201206/placement_service.rb +58 -0
  346. data/lib/dfp_api/v201206/placement_service_registry.rb +46 -0
  347. data/lib/dfp_api/v201206/publisher_query_language_service.rb +34 -0
  348. data/lib/dfp_api/v201206/publisher_query_language_service_registry.rb +46 -0
  349. data/lib/dfp_api/v201206/report_service.rb +42 -0
  350. data/lib/dfp_api/v201206/report_service_registry.rb +46 -0
  351. data/lib/dfp_api/v201206/suggested_ad_unit_service.rb +42 -0
  352. data/lib/dfp_api/v201206/suggested_ad_unit_service_registry.rb +46 -0
  353. data/lib/dfp_api/v201206/team_service.rb +54 -0
  354. data/lib/dfp_api/v201206/team_service_registry.rb +46 -0
  355. data/lib/dfp_api/v201206/third_party_slot_service.rb +46 -0
  356. data/lib/dfp_api/v201206/third_party_slot_service_registry.rb +46 -0
  357. data/lib/dfp_api/v201206/user_service.rb +66 -0
  358. data/lib/dfp_api/v201206/user_service_registry.rb +46 -0
  359. data/lib/dfp_api/v201206/user_team_association_service.rb +58 -0
  360. data/lib/dfp_api/v201206/user_team_association_service_registry.rb +46 -0
  361. data/lib/dfp_api/version.rb +1 -1
  362. data/test/bugs/test_issue_00000016.rb +2 -2
  363. metadata +199 -50
@@ -0,0 +1,131 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, 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 activates all line items for the given order. To be activated,
22
+ # line items need to be in the approved (needs creatives) state and have at
23
+ # least one creative associated with them. To approve line items, approve the
24
+ # order to which they belong by running approve_orders.rb. To create LICAs, run
25
+ # create_licas.rb. To determine which line items exist, run
26
+ # get_all_line_items.rb. To determine which orders exist, run get_all_orders.rb.
27
+ #
28
+ # Tags: LineItemService.getLineItemsByStatement
29
+ # Tags: LineItemService.performLineItemAction
30
+
31
+ require 'dfp_api'
32
+
33
+ API_VERSION = :v201206
34
+ PAGE_SIZE = 500
35
+
36
+ def activate_line_items()
37
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
38
+ dfp = DfpApi::Api.new
39
+
40
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
41
+ # the configuration file or provide your own logger:
42
+ # dfp.logger = Logger.new('dfp_xml.log')
43
+
44
+ # Get the LineItemService.
45
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
46
+
47
+ # Set the ID of the order to get line items from.
48
+ order_id = 'INSERT_ORDER_ID_HERE'.to_i
49
+
50
+ # Create a statement to only select line items from the specified order that
51
+ # are in the approved (needs creatives) state.
52
+ statement_text = 'WHERE orderID = :order_id AND status = :status'
53
+ statement = {
54
+ :values => [
55
+ {:key => 'order_id',
56
+ :value => {:value => order_id, :xsi_type => 'NumberValue'}},
57
+ {:key => 'status',
58
+ :value => {:value => 'NEEDS_CREATIVES', :xsi_type => 'TextValue'}}
59
+ ]
60
+ }
61
+
62
+ # Define initial values.
63
+ offset = 0
64
+ page = {}
65
+ line_item_ids = []
66
+
67
+ begin
68
+ # Create a statement to get one page with current offset.
69
+ statement[:query] = statement_text +
70
+ " LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]
71
+
72
+ # Get line items by statement.
73
+ page = line_item_service.get_line_items_by_statement(statement)
74
+
75
+ if page[:results]
76
+ # Increase query offset by page size.
77
+ offset += PAGE_SIZE
78
+
79
+ page[:results].each do |line_item|
80
+ if !line_item[:is_archived]
81
+ puts ("%d) Line item with ID: %d, order ID: %d and name: %s will " +
82
+ "be activated.") % [line_item_ids.size, line_item[:id],
83
+ line_item[:order_id], line_item[:name]]
84
+ line_item_ids << line_item[:id]
85
+ end
86
+ end
87
+ end
88
+ end while offset < page[:total_result_set_size]
89
+
90
+ puts "Number of line items to be activated: %d" % line_item_ids.size
91
+
92
+ if !line_item_ids.empty?
93
+ # Modify statement for action. Note, the values are still present.
94
+ statement[:query] = statement_text + " AND id IN (%s)" %
95
+ line_item_ids.join(', ')
96
+
97
+ # Perform action.
98
+ result = line_item_service.perform_line_item_action(
99
+ {:xsi_type => 'ActivateLineItems'}, statement)
100
+
101
+ # Display results.
102
+ if result and result[:num_changes] > 0
103
+ puts "Number of line items activated: %d" % result[:num_changes]
104
+ else
105
+ puts 'No line items were activated.'
106
+ end
107
+ else
108
+ puts 'No line items found to activate.'
109
+ end
110
+ end
111
+
112
+ if __FILE__ == $0
113
+ begin
114
+ activate_line_items()
115
+
116
+ # HTTP errors.
117
+ rescue AdsCommon::Errors::HttpError => e
118
+ puts "HTTP Error: %s" % e
119
+
120
+ # API errors.
121
+ rescue DfpApi::Errors::ApiException => e
122
+ puts "Message: %s" % e.message
123
+ puts 'Errors:'
124
+ e.errors.each_with_index do |error, index|
125
+ puts "\tError [%d]:" % (index + 1)
126
+ error.each do |field, value|
127
+ puts "\t\t%s: %s" % [field, value]
128
+ end
129
+ end
130
+ end
131
+ end
@@ -0,0 +1,177 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, 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 creates new line items. To determine which line items exist, run
22
+ # get_all_line_items.rb. To determine which orders exist, run
23
+ # get_all_orders.rb. To determine which placements exist, run
24
+ # get_all_placements.rb. To determine the IDs for locations, run
25
+ # get_all_cities.rb, get_all_countries.rb, get_all_metros.rb and
26
+ # get_all_regions.rb.
27
+ #
28
+ # Tags: LineItemService.createLineItems
29
+
30
+ require 'dfp_api'
31
+
32
+ API_VERSION = :v201206
33
+ # Number of line items to create.
34
+ ITEM_COUNT = 5
35
+
36
+ def create_line_items()
37
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
38
+ dfp = DfpApi::Api.new
39
+
40
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
41
+ # the configuration file or provide your own logger:
42
+ # dfp.logger = Logger.new('dfp_xml.log')
43
+
44
+ # Get the LineItemService.
45
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
46
+
47
+ # Set the order that all created line items will belong to and the placement
48
+ # ID to target.
49
+ order_id = 'INSERT_ORDER_ID_HERE'.to_i
50
+ targeted_placement_ids = Array.new(ITEM_COUNT) do
51
+ 'INSERT_PLACEMENT_ID_HERE'.to_i
52
+ end
53
+
54
+ # Create inventory targeting.
55
+ inventory_targeting = {:targeted_placement_ids => targeted_placement_ids}
56
+
57
+ # Create geographical targeting.
58
+ geo_targeting = {
59
+ # Include targets.
60
+ :targeted_locations => [
61
+ {:id => 2840}, # USA.
62
+ {:id => 20123}, # Quebec, Canada.
63
+ {:id => 9000093} # Postal code B3P (Canada).
64
+ ],
65
+ # Exclude targets.
66
+ :excluded_locations => [
67
+ {:id => 1016367}, # Chicago.
68
+ {:id => 200501} # New York.
69
+ ]
70
+ }
71
+
72
+ # Create user domain targeting. Exclude domains that are not under the
73
+ # network's control.
74
+ user_domain_targeting = {:domains => ['usa.gov'], :targeted => false}
75
+
76
+ # Create day-part targeting.
77
+ day_part_targeting = {
78
+ # Target only the weekend in the browser's timezone.
79
+ :time_zone => 'BROWSER',
80
+ :day_parts => [
81
+ {:day_of_week => 'SATURDAY',
82
+ :start_time => {:hour => 0, :minute => 'ZERO'},
83
+ :end_time => {:hour => 24, :minute => 'ZERO'}},
84
+ {:day_of_week => 'SUNDAY',
85
+ :start_time => {:hour => 0, :minute => 'ZERO'},
86
+ :end_time => {:hour => 24, :minute => 'ZERO'}}
87
+ ]
88
+ }
89
+
90
+ # Create technology targeting.
91
+ technology_targeting = {
92
+ # Create browser targeting.
93
+ :browser_targeting => {
94
+ :is_targeted => true,
95
+ # Target just the Chrome browser.
96
+ :browsers => [{:id => 500072}]
97
+ }
98
+ }
99
+
100
+ # Create targeting.
101
+ targeting = {:geo_targeting => geo_targeting,
102
+ :inventory_targeting => inventory_targeting,
103
+ :user_domain_targeting => user_domain_targeting,
104
+ :day_part_targeting => day_part_targeting,
105
+ :technology_targeting => technology_targeting
106
+ }
107
+
108
+ # Create an array to store local line item objects.
109
+ line_items = (1..ITEM_COUNT).map do |index|
110
+ line_item = {:name => "Line item #%d-%d" % [Time.new.to_f * 1000, index],
111
+ :order_id => order_id,
112
+ :targeting => targeting,
113
+ :line_item_type => 'STANDARD',
114
+ :allow_overbook => true}
115
+ # Set the creative rotation type to even.
116
+ line_item[:creative_rotation_type] = 'EVEN'
117
+
118
+ # Create the creative placeholder.
119
+ creative_placeholder = {
120
+ :size => {:width => 300, :height => 250, :is_aspect_ratio => false}
121
+ }
122
+
123
+ # Set the size of creatives that can be associated with this line item.
124
+ line_item[:creative_placeholders] = [creative_placeholder]
125
+
126
+ # Set the length of the line item to run.
127
+ line_item[:start_date_time_type] = 'IMMEDIATELY'
128
+ line_item[:end_date_time] = Time.new + 60 * 60 * 24 * 7
129
+
130
+ # Set the cost per unit to $2.
131
+ line_item[:cost_type] = 'CPM'
132
+ line_item[:cost_per_unit] = {
133
+ :currency_code => 'USD',
134
+ :micro_amount => 2000000
135
+ }
136
+
137
+ # Set the number of units bought to 500,000 so that the budget is $1,000.
138
+ line_item[:units_bought] = 500000
139
+ line_item[:unit_type] = 'IMPRESSIONS'
140
+
141
+ line_item
142
+ end
143
+
144
+ # Create the line items on the server.
145
+ return_line_items = line_item_service.create_line_items(line_items)
146
+
147
+ if return_line_items
148
+ return_line_items.each do |line_item|
149
+ puts ("Line item with ID: %d, belonging to order ID: %d, " +
150
+ "and named: %s was created.") %
151
+ [line_item[:id], line_item[:order_id], line_item[:name]]
152
+ end
153
+ else
154
+ raise 'No line items were created.'
155
+ end
156
+ end
157
+
158
+ if __FILE__ == $0
159
+ begin
160
+ create_line_items()
161
+
162
+ # HTTP errors.
163
+ rescue AdsCommon::Errors::HttpError => e
164
+ puts "HTTP Error: %s" % e
165
+
166
+ # API errors.
167
+ rescue DfpApi::Errors::ApiException => e
168
+ puts "Message: %s" % e.message
169
+ puts 'Errors:'
170
+ e.errors.each_with_index do |error, index|
171
+ puts "\tError [%d]:" % (index + 1)
172
+ error.each do |field, value|
173
+ puts "\t\t%s: %s" % [field, value]
174
+ end
175
+ end
176
+ end
177
+ end
@@ -0,0 +1,135 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, 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 create a new line item to serve to the mobile platform. To
22
+ # determine which line items exist, run get_all_line_items.rb. To determine
23
+ # which orders exist, run get_all_orders.rb. To create a mobile ad unit, run
24
+ # create_mobile_ad_unit.rb. To determine which placements exist, run
25
+ # get_all_placements.rb.
26
+ #
27
+ # Mobile features needs to be enabled in your account to use mobile targeting.
28
+ #
29
+ # Tags: LineItemService.createLineItem
30
+
31
+ require 'dfp_api'
32
+
33
+ API_VERSION = :v201206
34
+
35
+ def create_mobile_line_item()
36
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
37
+ dfp = DfpApi::Api.new
38
+
39
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
40
+ # the configuration file or provide your own logger:
41
+ # dfp.logger = Logger.new('dfp_xml.log')
42
+
43
+ # Get the LineItemService.
44
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
45
+
46
+ # Set the order that all created line items will belong to and the
47
+ # placement containing ad units with a mobile target platform.
48
+ order_id = 'INSERT_ORDER_ID_HERE'.to_i
49
+ targeted_placement_id = 'INSERT_MOBILE_PLACEMENT_ID_HERE'.to_i
50
+
51
+ # Create inventory targeting.
52
+ inventory_targeting = {:targeted_placement_ids => [targeted_placement_id]}
53
+
54
+ # Create technology targeting.
55
+ technology_targeting = {
56
+ :device_manufacturer_targeting => {
57
+ # Target the Google device manufacturer (40100).
58
+ :device_manufacturers => [{:id => 40100}],
59
+ :is_targeted => true
60
+ },
61
+ :mobile_device_targeting => {
62
+ # Exclude the Nexus One device (604046).
63
+ :excluded_mobile_devices => [{:id => 604046}]
64
+ },
65
+ :mobile_device_submodel_targeting => {
66
+ # Target the iPhone 4 device submodel (640003).
67
+ :targeted_mobile_device_submodels => [{:id => 640003}]
68
+ }
69
+ }
70
+
71
+ # Create targeting.
72
+ targeting = {
73
+ :inventory_targeting => inventory_targeting,
74
+ :technology_targeting => technology_targeting
75
+ }
76
+
77
+ # Create local line item object.
78
+ line_item = {
79
+ :name => 'Mobile line item',
80
+ :order_id => order_id,
81
+ :targeting => targeting,
82
+ :line_item_type => 'STANDARD',
83
+ :allow_overbook => true,
84
+ # Set the target platform to mobile.
85
+ :target_platform => 'MOBILE',
86
+ # Set the creative rotation type to even.
87
+ :creative_rotation_type => 'EVEN',
88
+ # Set the size of creatives that can be associated with this line item.
89
+ :creative_placeholders => [
90
+ {:size => {:width => 300, :height => 250, :is_aspect_ratio => false}}
91
+ ],
92
+ # Set the length of the line item to run.
93
+ :start_date_time_type => 'IMMEDIATELY',
94
+ :end_date_time => Time.new + 60 * 60 * 24 * 7,
95
+ # Set the cost per day to $2.
96
+ :cost_type => 'CPM',
97
+ :cost_per_unit => {:currency_code => 'USD', :micro_amount => 2000000},
98
+ # Set the number of units bought to 500,000 so that the budget is $1,000.
99
+ :units_bought => 500000,
100
+ :unit_type => 'IMPRESSIONS'
101
+ }
102
+
103
+ # Create the line item on the server.
104
+ return_line_item = line_item_service.create_line_item(line_item)
105
+
106
+ if return_line_item
107
+ puts(("Line item with ID: %d, belonging to order ID: %d, " +
108
+ "and named: %s was created.") %
109
+ [return_line_item[:id], return_line_item[:order_id],
110
+ return_line_item[:name]])
111
+ else
112
+ raise 'No line items were created.'
113
+ end
114
+ end
115
+
116
+ if __FILE__ == $0
117
+ begin
118
+ create_mobile_line_item()
119
+
120
+ # HTTP errors.
121
+ rescue AdsCommon::Errors::HttpError => e
122
+ puts "HTTP Error: %s" % e
123
+
124
+ # API errors.
125
+ rescue DfpApi::Errors::ApiException => e
126
+ puts "Message: %s" % e.message
127
+ puts 'Errors:'
128
+ e.errors.each_with_index do |error, index|
129
+ puts "\tError [%d]:" % (index + 1)
130
+ error.each do |field, value|
131
+ puts "\t\t%s: %s" % [field, value]
132
+ end
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,156 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, 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 create a new line item to serve to video content. To determine
22
+ # which line items exist, run get_all_line_items.rb. To determine which orders
23
+ # exist, run get_all_orders.rb. To create a video ad unit, run
24
+ # create_video_ad_unit.rb. To create criteria for categories, run
25
+ # create_custom_targeting_keys_and_values.rb.
26
+ #
27
+ # This feature is only available to DFP premium solution networks.
28
+ #
29
+ # Tags: LineItemService.createLineItem
30
+
31
+ require 'dfp_api'
32
+
33
+ API_VERSION = :v201206
34
+
35
+ def create_video_line_item()
36
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
37
+ dfp = DfpApi::Api.new
38
+
39
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
40
+ # the configuration file or provide your own logger:
41
+ # dfp.logger = Logger.new('dfp_xml.log')
42
+
43
+ # Get the LineItemService.
44
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
45
+
46
+ # Set the order that the created line item will belong to and the video ad
47
+ # unit ID to target.
48
+ order_id = 'INSERT_ORDER_ID_HERE'.to_i
49
+ targeted_video_ad_unit_id = 'INSERT_VIDEO_AD_UNIT_ID_HERE'.to_s
50
+
51
+ # Set the custom targeting key ID and value ID representing the metadata on
52
+ # the content to target. This would typically be a key representing a "genre"
53
+ # and a value representing something like "comedy".
54
+ content_custom_targeting_key_id =
55
+ 'INSERT_CONTENT_CUSTOM_TARGETING_KEY_ID_HERE'.to_i
56
+ content_custom_targeting_value_id =
57
+ 'INSERT_CONTENT_CUSTOM_TARGETING_VALUE_ID_HERE'.to_i
58
+
59
+ # Create custom criteria for the content metadata targeting.
60
+ content_custom_criteria = {
61
+ :xsi_type => 'CustomCriteria',
62
+ :key_id => content_custom_targeting_key_id,
63
+ :value_ids => [content_custom_targeting_value_id],
64
+ :operator => 'IS'
65
+ }
66
+
67
+ # Create custom criteria set.
68
+ custom_criteria_set = {
69
+ :children => [content_custom_criteria]
70
+ }
71
+
72
+ # Create inventory targeting.
73
+ inventory_targeting = {
74
+ :targeted_ad_units => [
75
+ {:ad_unit_id => targeted_video_ad_unit_id}
76
+ ]
77
+ }
78
+
79
+ # Create video position targeting.
80
+ video_position_targeting = {:targeted_video_positions => ['PREROLL']}
81
+
82
+ # Create targeting.
83
+ targeting = {
84
+ :custom_targeting => custom_criteria_set,
85
+ :inventory_targeting => inventory_targeting,
86
+ :video_position_targeting => video_position_targeting
87
+ }
88
+
89
+ # Create local line item object.
90
+ line_item = {
91
+ :name => 'Video line item',
92
+ :order_id => order_id,
93
+ :targeting => targeting,
94
+ :line_item_type => 'SPONSORSHIP',
95
+ :allow_overbook => true,
96
+ # Set the environment type to video.
97
+ :environment_type => 'VIDEO_PLAYER',
98
+ # Set the creative rotation type to optimized.
99
+ :creative_rotation_type => 'OPTIMIZED',
100
+ # Set delivery of video companions to optional.
101
+ :companion_delivery_option => 'OPTIONAL',
102
+ # Set the length of the line item to run.
103
+ :start_date_time_type => 'IMMEDIATELY',
104
+ :end_date_time => Time.new + 60 * 60 * 24 * 7,
105
+ # Set the cost per day to $1.
106
+ :cost_type => 'CPD',
107
+ :cost_per_unit => {:currency_code => 'USD', :micro_amount => 1000000},
108
+ # Set the percentage to be 100%.
109
+ :units_bought => 100
110
+ }
111
+
112
+ # Create the master creative placeholder and companion creative placeholders.
113
+ creative_master_placeholder = {
114
+ :size => {:width => 400, :height => 300, :is_aspect_ratio => false},
115
+ :companions => [
116
+ {:size => {:width => 300, :height => 250, :is_aspect_ratio => false}},
117
+ {:size => {:width => 728, :height => 90, :is_aspect_ratio => false}}
118
+ ]
119
+ }
120
+
121
+ # Set the size of creatives that can be associated with this line item.
122
+ line_item[:creative_placeholders] = [creative_master_placeholder]
123
+
124
+ # Create the line item on the server.
125
+ return_line_item = line_item_service.create_line_item(line_item)
126
+
127
+ if return_line_item
128
+ puts(("Line item with ID: %d, belonging to order ID: %d, " +
129
+ "and named: %s was created.") %
130
+ [return_line_item[:id], return_line_item[:order_id],
131
+ return_line_item[:name]])
132
+ else
133
+ raise 'No line items were created.'
134
+ end
135
+ end
136
+
137
+ if __FILE__ == $0
138
+ begin
139
+ create_video_line_item()
140
+
141
+ # HTTP errors.
142
+ rescue AdsCommon::Errors::HttpError => e
143
+ puts "HTTP Error: %s" % e
144
+
145
+ # API errors.
146
+ rescue DfpApi::Errors::ApiException => e
147
+ puts "Message: %s" % e.message
148
+ puts 'Errors:'
149
+ e.errors.each_with_index do |error, index|
150
+ puts "\tError [%d]:" % (index + 1)
151
+ error.each do |field, value|
152
+ puts "\t\t%s: %s" % [field, value]
153
+ end
154
+ end
155
+ end
156
+ end