google-dfp-api 0.2.5 → 0.2.6

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 (258) hide show
  1. data/ChangeLog +5 -0
  2. data/README +8 -7
  3. data/Rakefile +2 -2
  4. data/examples/v201111/common/error_handling.rb +76 -0
  5. data/examples/v201111/common/oauth_handling.rb +128 -0
  6. data/examples/v201111/company_service/create_companies.rb +81 -0
  7. data/examples/v201111/company_service/get_all_companies.rb +92 -0
  8. data/examples/v201111/company_service/get_companies_by_statement.rb +88 -0
  9. data/examples/v201111/company_service/get_company.rb +72 -0
  10. data/examples/v201111/company_service/update_companies.rb +95 -0
  11. data/examples/v201111/content_service/get_all_content.rb +94 -0
  12. data/examples/v201111/content_service/get_content_by_category.rb +136 -0
  13. data/examples/v201111/creative_service/copy_image_creatives.rb +115 -0
  14. data/examples/v201111/creative_service/create_creative_from_template.rb +139 -0
  15. data/examples/v201111/creative_service/create_creatives.rb +106 -0
  16. data/examples/v201111/creative_service/create_custom_creative.rb +104 -0
  17. data/examples/v201111/creative_service/get_all_creatives.rb +93 -0
  18. data/examples/v201111/creative_service/get_creative.rb +72 -0
  19. data/examples/v201111/creative_service/get_creatives_by_statement.rb +87 -0
  20. data/examples/v201111/creative_service/update_creatives.rb +96 -0
  21. data/examples/v201111/creative_template_service/get_all_creative_templates.rb +94 -0
  22. data/examples/v201111/creative_template_service/get_creative_template.rb +74 -0
  23. data/examples/v201111/creative_template_service/get_creative_templates_by_statement.rb +80 -0
  24. data/examples/v201111/custom_targeting_service/create_custom_targeting_keys_and_values.rb +140 -0
  25. data/examples/v201111/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
  26. data/examples/v201111/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
  27. data/examples/v201111/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
  28. data/examples/v201111/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
  29. data/examples/v201111/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
  30. data/examples/v201111/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
  31. data/examples/v201111/custom_targeting_service/update_custom_targeting_values.rb +106 -0
  32. data/examples/v201111/forecast_service/get_forecast.rb +107 -0
  33. data/examples/v201111/forecast_service/get_forecast_by_id.rb +80 -0
  34. data/examples/v201111/inventory_service/create_ad_units.rb +101 -0
  35. data/examples/v201111/inventory_service/create_mobile_ad_unit.rb +100 -0
  36. data/examples/v201111/inventory_service/create_video_ad_unit.rb +108 -0
  37. data/examples/v201111/inventory_service/deactivate_ad_units.rb +119 -0
  38. data/examples/v201111/inventory_service/get_ad_unit.rb +72 -0
  39. data/examples/v201111/inventory_service/get_ad_unit_sizes.rb +73 -0
  40. data/examples/v201111/inventory_service/get_ad_units_by_statement.rb +96 -0
  41. data/examples/v201111/inventory_service/get_all_ad_units.rb +93 -0
  42. data/examples/v201111/inventory_service/update_ad_units.rb +94 -0
  43. data/examples/v201111/label_service/create_labels.rb +83 -0
  44. data/examples/v201111/label_service/deactivate_labels.rb +118 -0
  45. data/examples/v201111/label_service/get_all_labels.rb +94 -0
  46. data/examples/v201111/label_service/get_label.rb +76 -0
  47. data/examples/v201111/label_service/get_labels_by_statement.rb +91 -0
  48. data/examples/v201111/label_service/update_labels.rb +104 -0
  49. data/examples/v201111/line_item_creative_association_service/create_licas.rb +94 -0
  50. data/examples/v201111/line_item_creative_association_service/deactivate_licas.rb +127 -0
  51. data/examples/v201111/line_item_creative_association_service/get_all_licas.rb +95 -0
  52. data/examples/v201111/line_item_creative_association_service/get_lica.rb +77 -0
  53. data/examples/v201111/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
  54. data/examples/v201111/line_item_creative_association_service/update_licas.rb +92 -0
  55. data/examples/v201111/line_item_service/activate_line_items.rb +131 -0
  56. data/examples/v201111/line_item_service/create_line_items.rb +177 -0
  57. data/examples/v201111/line_item_service/create_mobile_line_item.rb +135 -0
  58. data/examples/v201111/line_item_service/create_video_line_item.rb +156 -0
  59. data/examples/v201111/line_item_service/get_all_line_items.rb +94 -0
  60. data/examples/v201111/line_item_service/get_line_item.rb +74 -0
  61. data/examples/v201111/line_item_service/get_line_items_by_statement.rb +89 -0
  62. data/examples/v201111/line_item_service/target_custom_criteria.rb +129 -0
  63. data/examples/v201111/line_item_service/update_line_items.rb +109 -0
  64. data/examples/v201111/network_service/get_all_networks.rb +74 -0
  65. data/examples/v201111/network_service/get_current_network.rb +66 -0
  66. data/examples/v201111/order_service/approve_orders.rb +116 -0
  67. data/examples/v201111/order_service/create_orders.rb +92 -0
  68. data/examples/v201111/order_service/get_all_orders.rb +93 -0
  69. data/examples/v201111/order_service/get_order.rb +74 -0
  70. data/examples/v201111/order_service/get_orders_by_statement.rb +90 -0
  71. data/examples/v201111/order_service/update_orders.rb +95 -0
  72. data/examples/v201111/placement_service/create_placements.rb +129 -0
  73. data/examples/v201111/placement_service/deactivate_placements.rb +118 -0
  74. data/examples/v201111/placement_service/get_all_placements.rb +93 -0
  75. data/examples/v201111/placement_service/get_placement.rb +74 -0
  76. data/examples/v201111/placement_service/get_placements_by_statement.rb +86 -0
  77. data/examples/v201111/placement_service/update_placements.rb +97 -0
  78. data/examples/v201111/publisher_query_language_service/get_all_bandwidth_groups.rb +85 -0
  79. data/examples/v201111/publisher_query_language_service/get_all_browser_languages.rb +85 -0
  80. data/examples/v201111/publisher_query_language_service/get_all_browsers.rb +85 -0
  81. data/examples/v201111/publisher_query_language_service/get_all_cities.rb +85 -0
  82. data/examples/v201111/publisher_query_language_service/get_all_countries.rb +85 -0
  83. data/examples/v201111/publisher_query_language_service/get_all_device_manufacturers.rb +85 -0
  84. data/examples/v201111/publisher_query_language_service/get_all_metros.rb +85 -0
  85. data/examples/v201111/publisher_query_language_service/get_all_mobile_carriers.rb +85 -0
  86. data/examples/v201111/publisher_query_language_service/get_all_mobile_device_submodels.rb +85 -0
  87. data/examples/v201111/publisher_query_language_service/get_all_mobile_devices.rb +85 -0
  88. data/examples/v201111/publisher_query_language_service/get_all_operating_system_versions.rb +85 -0
  89. data/examples/v201111/publisher_query_language_service/get_all_operating_systems.rb +85 -0
  90. data/examples/v201111/publisher_query_language_service/get_all_postal_codes.rb +85 -0
  91. data/examples/v201111/publisher_query_language_service/get_all_regions.rb +85 -0
  92. data/examples/v201111/report_service/download_report.rb +81 -0
  93. data/examples/v201111/report_service/run_delivery_report.rb +91 -0
  94. data/examples/v201111/report_service/run_inventory_report.rb +90 -0
  95. data/examples/v201111/report_service/run_merged_delivery_report.rb +94 -0
  96. data/examples/v201111/report_service/run_sales_report.rb +89 -0
  97. data/examples/v201111/suggested_ad_unit_service/approve_suggested_ad_units.rb +116 -0
  98. data/examples/v201111/suggested_ad_unit_service/get_all_suggested_ad_units.rb +96 -0
  99. data/examples/v201111/suggested_ad_unit_service/get_suggested_ad_unit.rb +75 -0
  100. data/examples/v201111/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +91 -0
  101. data/examples/v201111/user_service/create_users.rb +89 -0
  102. data/examples/v201111/user_service/deactivate_users.rb +99 -0
  103. data/examples/v201111/user_service/get_all_roles.rb +73 -0
  104. data/examples/v201111/user_service/get_all_users.rb +92 -0
  105. data/examples/v201111/user_service/get_current_user.rb +66 -0
  106. data/examples/v201111/user_service/get_user.rb +73 -0
  107. data/examples/v201111/user_service/get_users_by_statement.rb +79 -0
  108. data/examples/v201111/user_service/update_users.rb +89 -0
  109. data/lib/dfp_api.rb +1 -1
  110. data/lib/dfp_api/api_config.rb +15 -6
  111. data/lib/dfp_api/v201103/company_service.rb +5 -5
  112. data/lib/dfp_api/v201103/company_service_registry.rb +3 -3
  113. data/lib/dfp_api/v201103/creative_service.rb +9 -9
  114. data/lib/dfp_api/v201103/creative_service_registry.rb +3 -3
  115. data/lib/dfp_api/v201103/custom_targeting_service.rb +17 -17
  116. data/lib/dfp_api/v201103/custom_targeting_service_registry.rb +3 -3
  117. data/lib/dfp_api/v201103/forecast_service.rb +1 -1
  118. data/lib/dfp_api/v201103/forecast_service_registry.rb +3 -3
  119. data/lib/dfp_api/v201103/inventory_service.rb +9 -9
  120. data/lib/dfp_api/v201103/inventory_service_registry.rb +3 -3
  121. data/lib/dfp_api/v201103/line_item_creative_association_service.rb +13 -13
  122. data/lib/dfp_api/v201103/line_item_creative_association_service_registry.rb +3 -3
  123. data/lib/dfp_api/v201103/line_item_service.rb +5 -5
  124. data/lib/dfp_api/v201103/line_item_service_registry.rb +3 -3
  125. data/lib/dfp_api/v201103/network_service.rb +1 -1
  126. data/lib/dfp_api/v201103/network_service_registry.rb +3 -3
  127. data/lib/dfp_api/v201103/order_service.rb +13 -13
  128. data/lib/dfp_api/v201103/order_service_registry.rb +3 -3
  129. data/lib/dfp_api/v201103/placement_service.rb +5 -5
  130. data/lib/dfp_api/v201103/placement_service_registry.rb +3 -3
  131. data/lib/dfp_api/v201103/publisher_query_language_service.rb +1 -1
  132. data/lib/dfp_api/v201103/publisher_query_language_service_registry.rb +3 -3
  133. data/lib/dfp_api/v201103/report_service.rb +5 -5
  134. data/lib/dfp_api/v201103/report_service_registry.rb +3 -3
  135. data/lib/dfp_api/v201103/user_service.rb +13 -13
  136. data/lib/dfp_api/v201103/user_service_registry.rb +3 -3
  137. data/lib/dfp_api/v201104/company_service.rb +5 -5
  138. data/lib/dfp_api/v201104/company_service_registry.rb +3 -3
  139. data/lib/dfp_api/v201104/creative_service.rb +9 -9
  140. data/lib/dfp_api/v201104/creative_service_registry.rb +3 -3
  141. data/lib/dfp_api/v201104/custom_targeting_service.rb +17 -17
  142. data/lib/dfp_api/v201104/custom_targeting_service_registry.rb +3 -3
  143. data/lib/dfp_api/v201104/forecast_service.rb +1 -1
  144. data/lib/dfp_api/v201104/forecast_service_registry.rb +3 -3
  145. data/lib/dfp_api/v201104/inventory_service.rb +9 -9
  146. data/lib/dfp_api/v201104/inventory_service_registry.rb +3 -3
  147. data/lib/dfp_api/v201104/line_item_creative_association_service.rb +13 -13
  148. data/lib/dfp_api/v201104/line_item_creative_association_service_registry.rb +3 -3
  149. data/lib/dfp_api/v201104/line_item_service.rb +5 -5
  150. data/lib/dfp_api/v201104/line_item_service_registry.rb +3 -3
  151. data/lib/dfp_api/v201104/network_service.rb +1 -1
  152. data/lib/dfp_api/v201104/network_service_registry.rb +3 -3
  153. data/lib/dfp_api/v201104/order_service.rb +13 -13
  154. data/lib/dfp_api/v201104/order_service_registry.rb +3 -3
  155. data/lib/dfp_api/v201104/placement_service.rb +5 -5
  156. data/lib/dfp_api/v201104/placement_service_registry.rb +3 -3
  157. data/lib/dfp_api/v201104/publisher_query_language_service.rb +1 -1
  158. data/lib/dfp_api/v201104/publisher_query_language_service_registry.rb +3 -3
  159. data/lib/dfp_api/v201104/report_service.rb +5 -5
  160. data/lib/dfp_api/v201104/report_service_registry.rb +3 -3
  161. data/lib/dfp_api/v201104/user_service.rb +13 -13
  162. data/lib/dfp_api/v201104/user_service_registry.rb +3 -3
  163. data/lib/dfp_api/v201107/company_service.rb +5 -5
  164. data/lib/dfp_api/v201107/company_service_registry.rb +3 -3
  165. data/lib/dfp_api/v201107/creative_service.rb +9 -9
  166. data/lib/dfp_api/v201107/creative_service_registry.rb +3 -3
  167. data/lib/dfp_api/v201107/custom_targeting_service.rb +17 -17
  168. data/lib/dfp_api/v201107/custom_targeting_service_registry.rb +3 -3
  169. data/lib/dfp_api/v201107/forecast_service.rb +1 -1
  170. data/lib/dfp_api/v201107/forecast_service_registry.rb +3 -3
  171. data/lib/dfp_api/v201107/inventory_service.rb +9 -9
  172. data/lib/dfp_api/v201107/inventory_service_registry.rb +3 -3
  173. data/lib/dfp_api/v201107/label_service.rb +5 -5
  174. data/lib/dfp_api/v201107/label_service_registry.rb +3 -3
  175. data/lib/dfp_api/v201107/line_item_creative_association_service.rb +13 -13
  176. data/lib/dfp_api/v201107/line_item_creative_association_service_registry.rb +3 -3
  177. data/lib/dfp_api/v201107/line_item_service.rb +5 -5
  178. data/lib/dfp_api/v201107/line_item_service_registry.rb +3 -3
  179. data/lib/dfp_api/v201107/network_service.rb +1 -1
  180. data/lib/dfp_api/v201107/network_service_registry.rb +3 -3
  181. data/lib/dfp_api/v201107/order_service.rb +13 -13
  182. data/lib/dfp_api/v201107/order_service_registry.rb +3 -3
  183. data/lib/dfp_api/v201107/placement_service.rb +5 -5
  184. data/lib/dfp_api/v201107/placement_service_registry.rb +3 -3
  185. data/lib/dfp_api/v201107/publisher_query_language_service.rb +1 -1
  186. data/lib/dfp_api/v201107/publisher_query_language_service_registry.rb +3 -3
  187. data/lib/dfp_api/v201107/report_service.rb +5 -5
  188. data/lib/dfp_api/v201107/report_service_registry.rb +3 -3
  189. data/lib/dfp_api/v201107/user_service.rb +13 -13
  190. data/lib/dfp_api/v201107/user_service_registry.rb +3 -3
  191. data/lib/dfp_api/v201108/company_service.rb +5 -5
  192. data/lib/dfp_api/v201108/company_service_registry.rb +3 -3
  193. data/lib/dfp_api/v201108/creative_service.rb +9 -9
  194. data/lib/dfp_api/v201108/creative_service_registry.rb +3 -3
  195. data/lib/dfp_api/v201108/custom_targeting_service.rb +17 -17
  196. data/lib/dfp_api/v201108/custom_targeting_service_registry.rb +3 -3
  197. data/lib/dfp_api/v201108/forecast_service.rb +1 -1
  198. data/lib/dfp_api/v201108/forecast_service_registry.rb +3 -3
  199. data/lib/dfp_api/v201108/inventory_service.rb +9 -9
  200. data/lib/dfp_api/v201108/inventory_service_registry.rb +3 -3
  201. data/lib/dfp_api/v201108/label_service.rb +5 -5
  202. data/lib/dfp_api/v201108/label_service_registry.rb +3 -3
  203. data/lib/dfp_api/v201108/line_item_creative_association_service.rb +13 -13
  204. data/lib/dfp_api/v201108/line_item_creative_association_service_registry.rb +3 -3
  205. data/lib/dfp_api/v201108/line_item_service.rb +5 -5
  206. data/lib/dfp_api/v201108/line_item_service_registry.rb +3 -3
  207. data/lib/dfp_api/v201108/network_service.rb +1 -1
  208. data/lib/dfp_api/v201108/network_service_registry.rb +3 -3
  209. data/lib/dfp_api/v201108/order_service.rb +13 -13
  210. data/lib/dfp_api/v201108/order_service_registry.rb +3 -3
  211. data/lib/dfp_api/v201108/placement_service.rb +5 -5
  212. data/lib/dfp_api/v201108/placement_service_registry.rb +3 -3
  213. data/lib/dfp_api/v201108/publisher_query_language_service.rb +1 -1
  214. data/lib/dfp_api/v201108/publisher_query_language_service_registry.rb +3 -3
  215. data/lib/dfp_api/v201108/report_service.rb +5 -5
  216. data/lib/dfp_api/v201108/report_service_registry.rb +3 -3
  217. data/lib/dfp_api/v201108/third_party_slot_service.rb +5 -5
  218. data/lib/dfp_api/v201108/third_party_slot_service_registry.rb +3 -3
  219. data/lib/dfp_api/v201108/user_service.rb +13 -13
  220. data/lib/dfp_api/v201108/user_service_registry.rb +3 -3
  221. data/lib/dfp_api/v201111/company_service.rb +52 -0
  222. data/lib/dfp_api/v201111/company_service_registry.rb +44 -0
  223. data/lib/dfp_api/v201111/content_service.rb +40 -0
  224. data/lib/dfp_api/v201111/content_service_registry.rb +44 -0
  225. data/lib/dfp_api/v201111/creative_service.rb +52 -0
  226. data/lib/dfp_api/v201111/creative_service_registry.rb +44 -0
  227. data/lib/dfp_api/v201111/creative_template_service.rb +36 -0
  228. data/lib/dfp_api/v201111/creative_template_service_registry.rb +44 -0
  229. data/lib/dfp_api/v201111/custom_targeting_service.rb +60 -0
  230. data/lib/dfp_api/v201111/custom_targeting_service_registry.rb +44 -0
  231. data/lib/dfp_api/v201111/forecast_service.rb +36 -0
  232. data/lib/dfp_api/v201111/forecast_service_registry.rb +44 -0
  233. data/lib/dfp_api/v201111/inventory_service.rb +60 -0
  234. data/lib/dfp_api/v201111/inventory_service_registry.rb +44 -0
  235. data/lib/dfp_api/v201111/label_service.rb +56 -0
  236. data/lib/dfp_api/v201111/label_service_registry.rb +44 -0
  237. data/lib/dfp_api/v201111/line_item_creative_association_service.rb +60 -0
  238. data/lib/dfp_api/v201111/line_item_creative_association_service_registry.rb +44 -0
  239. data/lib/dfp_api/v201111/line_item_service.rb +56 -0
  240. data/lib/dfp_api/v201111/line_item_service_registry.rb +44 -0
  241. data/lib/dfp_api/v201111/network_service.rb +40 -0
  242. data/lib/dfp_api/v201111/network_service_registry.rb +44 -0
  243. data/lib/dfp_api/v201111/order_service.rb +56 -0
  244. data/lib/dfp_api/v201111/order_service_registry.rb +44 -0
  245. data/lib/dfp_api/v201111/placement_service.rb +56 -0
  246. data/lib/dfp_api/v201111/placement_service_registry.rb +44 -0
  247. data/lib/dfp_api/v201111/publisher_query_language_service.rb +32 -0
  248. data/lib/dfp_api/v201111/publisher_query_language_service_registry.rb +44 -0
  249. data/lib/dfp_api/v201111/report_service.rb +40 -0
  250. data/lib/dfp_api/v201111/report_service_registry.rb +44 -0
  251. data/lib/dfp_api/v201111/suggested_ad_unit_service.rb +40 -0
  252. data/lib/dfp_api/v201111/suggested_ad_unit_service_registry.rb +44 -0
  253. data/lib/dfp_api/v201111/third_party_slot_service.rb +44 -0
  254. data/lib/dfp_api/v201111/third_party_slot_service_registry.rb +44 -0
  255. data/lib/dfp_api/v201111/user_service.rb +64 -0
  256. data/lib/dfp_api/v201111/user_service_registry.rb +44 -0
  257. data/test/bugs/test_issue_00000016.rb +3 -3
  258. metadata +149 -8
@@ -0,0 +1,135 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
4
+ #
5
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ #
7
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+ # This example create a new line item to serve to the mobile platform. To
21
+ # determine which line items exist, run get_all_line_items.rb. To determine
22
+ # which orders exist, run get_all_orders.rb. To create a mobile ad unit, run
23
+ # create_mobile_ad_unit.rb. To determine which placements exist, run
24
+ # get_all_placements.rb.
25
+ #
26
+ # Mobile features needs to be enabled in your account to use mobile targeting.
27
+ #
28
+ # Tags: LineItemService.createLineItem
29
+
30
+ require 'rubygems'
31
+ require 'dfp_api'
32
+
33
+ API_VERSION = :v201111
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/ruby
2
+ #
3
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
4
+ #
5
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ #
7
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+ # This example create a new line item to serve to video content. To determine
21
+ # which line items exist, run get_all_line_items.rb. To determine which orders
22
+ # exist, run get_all_orders.rb. To create a video ad unit, run
23
+ # create_video_ad_unit.rb. To create criteria for categories, run
24
+ # create_custom_targeting_keys_and_values.rb.
25
+ #
26
+ # This feature is only available to DFP premium solution networks.
27
+ #
28
+ # Tags: LineItemService.createLineItem
29
+
30
+ require 'rubygems'
31
+ require 'dfp_api'
32
+
33
+ API_VERSION = :v201111
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
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
4
+ #
5
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ #
7
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+ # This example gets all line items. To create line items, run
21
+ # create_line_items.rb.
22
+ #
23
+ # Tags: LineItemService.getLineItemsByStatement
24
+
25
+ require 'rubygems'
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201111
29
+ PAGE_SIZE = 500
30
+
31
+ def get_all_line_items()
32
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
33
+ dfp = DfpApi::Api.new
34
+
35
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
36
+ # the configuration file or provide your own logger:
37
+ # dfp.logger = Logger.new('dfp_xml.log')
38
+
39
+ # Get the LineItemService.
40
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
41
+
42
+ # Define initial values.
43
+ offset = 0
44
+ page = {}
45
+
46
+ begin
47
+ # Create a statement to get one page with current offset.
48
+ statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
49
+
50
+ # Get line items by statement.
51
+ page = line_item_service.get_line_items_by_statement(statement)
52
+
53
+ if page[:results]
54
+ # Increase query offset by page size.
55
+ offset += PAGE_SIZE
56
+
57
+ # Get the start index for printout.
58
+ start_index = page[:start_index]
59
+
60
+ # Print details about each line item in results.
61
+ page[:results].each_with_index do |line_item, index|
62
+ puts "%d) Line item ID: %d, order ID: %d, name: %s" %
63
+ [index + start_index, line_item[:id],
64
+ line_item[:order_id], line_item[:name]]
65
+ end
66
+ end
67
+ end while offset < page[:total_result_set_size]
68
+
69
+ # Print a footer.
70
+ if page.include?(:total_result_set_size)
71
+ puts "Total number of line items: %d" % page[:total_result_set_size]
72
+ end
73
+ end
74
+
75
+ if __FILE__ == $0
76
+ begin
77
+ get_all_line_items()
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,74 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
4
+ #
5
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ #
7
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
16
+ # implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+ # This example gets a line item by its ID. To determine which line items
21
+ # exist, run get_all_line_items.rb.
22
+ #
23
+ # Tags: LineItemService.getLineItem
24
+
25
+ require 'rubygems'
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201111
29
+
30
+ def get_line_item()
31
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
32
+ dfp = DfpApi::Api.new
33
+
34
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
35
+ # the configuration file or provide your own logger:
36
+ # dfp.logger = Logger.new('dfp_xml.log')
37
+
38
+ # Get the LineItemService.
39
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
40
+
41
+ # Set the ID of the line_item to get.
42
+ line_item_id = 'INSERT_LINE_ITEM_ID_HERE'.to_i
43
+
44
+ # Get the line item.
45
+ line_item = line_item_service.get_line_item(line_item_id)
46
+
47
+ if line_item
48
+ puts "Line item with ID: %d, name: %s and order id: %d was found." %
49
+ [line_item[:id], line_item[:name], line_item[:order_id]]
50
+ else
51
+ puts 'No line item found for this ID.'
52
+ end
53
+ end
54
+
55
+ if __FILE__ == $0
56
+ begin
57
+ get_line_item()
58
+
59
+ # HTTP errors.
60
+ rescue AdsCommon::Errors::HttpError => e
61
+ puts "HTTP Error: %s" % e
62
+
63
+ # API errors.
64
+ rescue DfpApi::Errors::ApiException => e
65
+ puts "Message: %s" % e.message
66
+ puts 'Errors:'
67
+ e.errors.each_with_index do |error, index|
68
+ puts "\tError [%d]:" % (index + 1)
69
+ error.each do |field, value|
70
+ puts "\t\t%s: %s" % [field, value]
71
+ end
72
+ end
73
+ end
74
+ end