google-dfp-api 0.2.0 → 0.2.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 (226) hide show
  1. data/ChangeLog +7 -1
  2. data/README +11 -11
  3. data/Rakefile +13 -11
  4. data/examples/v201103/common/error_handling.rb +76 -0
  5. data/examples/v201103/company_service/create_companies.rb +82 -0
  6. data/examples/v201103/company_service/get_all_companies.rb +92 -0
  7. data/examples/v201103/company_service/get_companies_by_statement.rb +88 -0
  8. data/examples/v201103/company_service/get_company.rb +72 -0
  9. data/examples/v201103/company_service/update_companies.rb +95 -0
  10. data/examples/v201103/creative_service/copy_image_creatives.rb +117 -0
  11. data/examples/v201103/creative_service/create_creatives.rb +109 -0
  12. data/examples/v201103/creative_service/get_all_creatives.rb +93 -0
  13. data/examples/v201103/creative_service/get_creative.rb +72 -0
  14. data/examples/v201103/creative_service/get_creatives_by_statement.rb +87 -0
  15. data/examples/v201103/creative_service/update_creatives.rb +98 -0
  16. data/examples/v201103/custom_targeting_service/create_custom_targeting_keys_and_values.rb +118 -0
  17. data/examples/v201103/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
  18. data/examples/v201103/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
  19. data/examples/v201103/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
  20. data/examples/v201103/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
  21. data/examples/v201103/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
  22. data/examples/v201103/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
  23. data/examples/v201103/custom_targeting_service/update_custom_targeting_values.rb +106 -0
  24. data/examples/v201103/forecast_service/get_forecast.rb +103 -0
  25. data/examples/v201103/forecast_service/get_forecast_by_id.rb +80 -0
  26. data/examples/v201103/inventory_service/create_ad_units.rb +98 -0
  27. data/examples/v201103/inventory_service/deactivate_ad_units.rb +119 -0
  28. data/examples/v201103/inventory_service/get_ad_unit.rb +72 -0
  29. data/examples/v201103/inventory_service/get_ad_units_by_statement.rb +96 -0
  30. data/examples/v201103/inventory_service/get_all_ad_units.rb +93 -0
  31. data/examples/v201103/inventory_service/update_ad_units.rb +94 -0
  32. data/examples/v201103/line_item_creative_association_service/create_licas.rb +94 -0
  33. data/examples/v201103/line_item_creative_association_service/deactivate_licas.rb +127 -0
  34. data/examples/v201103/line_item_creative_association_service/get_all_licas.rb +95 -0
  35. data/examples/v201103/line_item_creative_association_service/get_lica.rb +77 -0
  36. data/examples/v201103/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
  37. data/examples/v201103/line_item_creative_association_service/update_licas.rb +92 -0
  38. data/examples/v201103/line_item_service/activate_line_items.rb +131 -0
  39. data/examples/v201103/line_item_service/create_line_items.rb +165 -0
  40. data/examples/v201103/line_item_service/get_all_line_items.rb +94 -0
  41. data/examples/v201103/line_item_service/get_line_item.rb +74 -0
  42. data/examples/v201103/line_item_service/get_line_items_by_statement.rb +89 -0
  43. data/examples/v201103/line_item_service/target_custom_criteria.rb +135 -0
  44. data/examples/v201103/line_item_service/update_line_items.rb +110 -0
  45. data/examples/v201103/network_service/get_all_networks.rb +74 -0
  46. data/examples/v201103/network_service/get_current_network.rb +66 -0
  47. data/examples/v201103/order_service/approve_orders.rb +116 -0
  48. data/examples/v201103/order_service/create_orders.rb +93 -0
  49. data/examples/v201103/order_service/get_all_orders.rb +93 -0
  50. data/examples/v201103/order_service/get_order.rb +74 -0
  51. data/examples/v201103/order_service/get_orders_by_statement.rb +90 -0
  52. data/examples/v201103/order_service/update_orders.rb +95 -0
  53. data/examples/v201103/placement_service/create_placements.rb +128 -0
  54. data/examples/v201103/placement_service/deactivate_placements.rb +118 -0
  55. data/examples/v201103/placement_service/get_all_placements.rb +93 -0
  56. data/examples/v201103/placement_service/get_placement.rb +74 -0
  57. data/examples/v201103/placement_service/get_placements_by_statement.rb +86 -0
  58. data/examples/v201103/placement_service/update_placements.rb +96 -0
  59. data/examples/v201103/publisher_query_language_service/get_all_cities.rb +85 -0
  60. data/examples/v201103/publisher_query_language_service/get_all_countries.rb +85 -0
  61. data/examples/v201103/publisher_query_language_service/get_all_metros.rb +85 -0
  62. data/examples/v201103/publisher_query_language_service/get_all_regions.rb +85 -0
  63. data/examples/v201103/report_service/download_report.rb +81 -0
  64. data/examples/v201103/report_service/run_delivery_report.rb +89 -0
  65. data/examples/v201103/report_service/run_inventory_report.rb +90 -0
  66. data/examples/v201103/report_service/run_sales_report.rb +89 -0
  67. data/examples/v201103/user_service/create_users.rb +89 -0
  68. data/examples/v201103/user_service/deactivate_users.rb +99 -0
  69. data/examples/v201103/user_service/get_all_roles.rb +73 -0
  70. data/examples/v201103/user_service/get_all_users.rb +92 -0
  71. data/examples/v201103/user_service/get_user.rb +73 -0
  72. data/examples/v201103/user_service/get_users_by_statement.rb +79 -0
  73. data/examples/v201103/user_service/update_users.rb +89 -0
  74. data/examples/v201104/common/error_handling.rb +76 -0
  75. data/examples/v201104/company_service/create_companies.rb +82 -0
  76. data/examples/v201104/company_service/get_all_companies.rb +92 -0
  77. data/examples/v201104/company_service/get_companies_by_statement.rb +88 -0
  78. data/examples/v201104/company_service/get_company.rb +72 -0
  79. data/examples/v201104/company_service/update_companies.rb +95 -0
  80. data/examples/v201104/creative_service/copy_image_creatives.rb +117 -0
  81. data/examples/v201104/creative_service/create_creatives.rb +109 -0
  82. data/examples/v201104/creative_service/get_all_creatives.rb +93 -0
  83. data/examples/v201104/creative_service/get_creative.rb +72 -0
  84. data/examples/v201104/creative_service/get_creatives_by_statement.rb +87 -0
  85. data/examples/v201104/creative_service/update_creatives.rb +98 -0
  86. data/examples/v201104/custom_targeting_service/create_custom_targeting_keys_and_values.rb +118 -0
  87. data/examples/v201104/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
  88. data/examples/v201104/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
  89. data/examples/v201104/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
  90. data/examples/v201104/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
  91. data/examples/v201104/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
  92. data/examples/v201104/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
  93. data/examples/v201104/custom_targeting_service/update_custom_targeting_values.rb +106 -0
  94. data/examples/v201104/forecast_service/get_forecast.rb +103 -0
  95. data/examples/v201104/forecast_service/get_forecast_by_id.rb +80 -0
  96. data/examples/v201104/inventory_service/create_ad_units.rb +98 -0
  97. data/examples/v201104/inventory_service/deactivate_ad_units.rb +119 -0
  98. data/examples/v201104/inventory_service/get_ad_unit.rb +72 -0
  99. data/examples/v201104/inventory_service/get_ad_units_by_statement.rb +96 -0
  100. data/examples/v201104/inventory_service/get_all_ad_units.rb +93 -0
  101. data/examples/v201104/inventory_service/update_ad_units.rb +94 -0
  102. data/examples/v201104/line_item_creative_association_service/create_licas.rb +94 -0
  103. data/examples/v201104/line_item_creative_association_service/deactivate_licas.rb +127 -0
  104. data/examples/v201104/line_item_creative_association_service/get_all_licas.rb +95 -0
  105. data/examples/v201104/line_item_creative_association_service/get_lica.rb +77 -0
  106. data/examples/v201104/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
  107. data/examples/v201104/line_item_creative_association_service/update_licas.rb +92 -0
  108. data/examples/v201104/line_item_service/activate_line_items.rb +131 -0
  109. data/examples/v201104/line_item_service/create_line_items.rb +157 -0
  110. data/examples/v201104/line_item_service/get_all_line_items.rb +94 -0
  111. data/examples/v201104/line_item_service/get_line_item.rb +74 -0
  112. data/examples/v201104/line_item_service/get_line_items_by_statement.rb +89 -0
  113. data/examples/v201104/line_item_service/target_custom_criteria.rb +129 -0
  114. data/examples/v201104/line_item_service/update_line_items.rb +110 -0
  115. data/examples/v201104/network_service/get_all_networks.rb +74 -0
  116. data/examples/v201104/network_service/get_current_network.rb +66 -0
  117. data/examples/v201104/order_service/approve_orders.rb +116 -0
  118. data/examples/v201104/order_service/create_orders.rb +93 -0
  119. data/examples/v201104/order_service/get_all_orders.rb +93 -0
  120. data/examples/v201104/order_service/get_order.rb +74 -0
  121. data/examples/v201104/order_service/get_orders_by_statement.rb +90 -0
  122. data/examples/v201104/order_service/update_orders.rb +95 -0
  123. data/examples/v201104/placement_service/create_placements.rb +128 -0
  124. data/examples/v201104/placement_service/deactivate_placements.rb +118 -0
  125. data/examples/v201104/placement_service/get_all_placements.rb +93 -0
  126. data/examples/v201104/placement_service/get_placement.rb +74 -0
  127. data/examples/v201104/placement_service/get_placements_by_statement.rb +86 -0
  128. data/examples/v201104/placement_service/update_placements.rb +96 -0
  129. data/examples/v201104/publisher_query_language_service/get_all_cities.rb +85 -0
  130. data/examples/v201104/publisher_query_language_service/get_all_countries.rb +85 -0
  131. data/examples/v201104/publisher_query_language_service/get_all_metros.rb +85 -0
  132. data/examples/v201104/publisher_query_language_service/get_all_regions.rb +85 -0
  133. data/examples/v201104/report_service/download_report.rb +81 -0
  134. data/examples/v201104/report_service/run_delivery_report.rb +89 -0
  135. data/examples/v201104/report_service/run_inventory_report.rb +90 -0
  136. data/examples/v201104/report_service/run_sales_report.rb +89 -0
  137. data/examples/v201104/user_service/create_users.rb +89 -0
  138. data/examples/v201104/user_service/deactivate_users.rb +99 -0
  139. data/examples/v201104/user_service/get_all_roles.rb +73 -0
  140. data/examples/v201104/user_service/get_all_users.rb +92 -0
  141. data/examples/v201104/user_service/get_user.rb +73 -0
  142. data/examples/v201104/user_service/get_users_by_statement.rb +79 -0
  143. data/examples/v201104/user_service/update_users.rb +89 -0
  144. data/lib/dfp_api.rb +32 -45
  145. data/lib/dfp_api/api_config.rb +30 -7
  146. data/lib/dfp_api/v201101/company_service.rb +9 -9
  147. data/lib/dfp_api/v201101/company_service_registry.rb +3 -3
  148. data/lib/dfp_api/v201101/creative_service.rb +9 -9
  149. data/lib/dfp_api/v201101/creative_service_registry.rb +3 -3
  150. data/lib/dfp_api/v201101/custom_targeting_service.rb +9 -9
  151. data/lib/dfp_api/v201101/custom_targeting_service_registry.rb +3 -3
  152. data/lib/dfp_api/v201101/forecast_service.rb +5 -5
  153. data/lib/dfp_api/v201101/forecast_service_registry.rb +3 -3
  154. data/lib/dfp_api/v201101/inventory_service.rb +13 -13
  155. data/lib/dfp_api/v201101/inventory_service_registry.rb +3 -3
  156. data/lib/dfp_api/v201101/line_item_creative_association_service.rb +5 -5
  157. data/lib/dfp_api/v201101/line_item_creative_association_service_registry.rb +3 -3
  158. data/lib/dfp_api/v201101/line_item_service.rb +13 -13
  159. data/lib/dfp_api/v201101/line_item_service_registry.rb +3 -3
  160. data/lib/dfp_api/v201101/network_service.rb +5 -5
  161. data/lib/dfp_api/v201101/network_service_registry.rb +3 -3
  162. data/lib/dfp_api/v201101/order_service.rb +13 -13
  163. data/lib/dfp_api/v201101/order_service_registry.rb +3 -3
  164. data/lib/dfp_api/v201101/placement_service.rb +9 -9
  165. data/lib/dfp_api/v201101/placement_service_registry.rb +3 -3
  166. data/lib/dfp_api/v201101/publisher_query_language_service.rb +1 -1
  167. data/lib/dfp_api/v201101/publisher_query_language_service_registry.rb +3 -3
  168. data/lib/dfp_api/v201101/report_service.rb +5 -5
  169. data/lib/dfp_api/v201101/report_service_registry.rb +3 -3
  170. data/lib/dfp_api/v201101/user_service.rb +17 -17
  171. data/lib/dfp_api/v201101/user_service_registry.rb +3 -3
  172. data/lib/dfp_api/v201103/company_service.rb +52 -0
  173. data/lib/dfp_api/v201103/company_service_registry.rb +37 -0
  174. data/lib/dfp_api/v201103/creative_service.rb +52 -0
  175. data/lib/dfp_api/v201103/creative_service_registry.rb +37 -0
  176. data/lib/dfp_api/v201103/custom_targeting_service.rb +60 -0
  177. data/lib/dfp_api/v201103/custom_targeting_service_registry.rb +37 -0
  178. data/lib/dfp_api/v201103/forecast_service.rb +36 -0
  179. data/lib/dfp_api/v201103/forecast_service_registry.rb +37 -0
  180. data/lib/dfp_api/v201103/inventory_service.rb +56 -0
  181. data/lib/dfp_api/v201103/inventory_service_registry.rb +37 -0
  182. data/lib/dfp_api/v201103/line_item_creative_association_service.rb +56 -0
  183. data/lib/dfp_api/v201103/line_item_creative_association_service_registry.rb +37 -0
  184. data/lib/dfp_api/v201103/line_item_service.rb +56 -0
  185. data/lib/dfp_api/v201103/line_item_service_registry.rb +37 -0
  186. data/lib/dfp_api/v201103/network_service.rb +40 -0
  187. data/lib/dfp_api/v201103/network_service_registry.rb +37 -0
  188. data/lib/dfp_api/v201103/order_service.rb +56 -0
  189. data/lib/dfp_api/v201103/order_service_registry.rb +37 -0
  190. data/lib/dfp_api/v201103/placement_service.rb +56 -0
  191. data/lib/dfp_api/v201103/placement_service_registry.rb +37 -0
  192. data/lib/dfp_api/v201103/publisher_query_language_service.rb +32 -0
  193. data/lib/dfp_api/v201103/publisher_query_language_service_registry.rb +37 -0
  194. data/lib/dfp_api/v201103/report_service.rb +40 -0
  195. data/lib/dfp_api/v201103/report_service_registry.rb +37 -0
  196. data/lib/dfp_api/v201103/user_service.rb +60 -0
  197. data/lib/dfp_api/v201103/user_service_registry.rb +37 -0
  198. data/lib/dfp_api/v201104/company_service.rb +52 -0
  199. data/lib/dfp_api/v201104/company_service_registry.rb +37 -0
  200. data/lib/dfp_api/v201104/creative_service.rb +52 -0
  201. data/lib/dfp_api/v201104/creative_service_registry.rb +37 -0
  202. data/lib/dfp_api/v201104/custom_targeting_service.rb +60 -0
  203. data/lib/dfp_api/v201104/custom_targeting_service_registry.rb +37 -0
  204. data/lib/dfp_api/v201104/forecast_service.rb +36 -0
  205. data/lib/dfp_api/v201104/forecast_service_registry.rb +37 -0
  206. data/lib/dfp_api/v201104/inventory_service.rb +56 -0
  207. data/lib/dfp_api/v201104/inventory_service_registry.rb +37 -0
  208. data/lib/dfp_api/v201104/line_item_creative_association_service.rb +56 -0
  209. data/lib/dfp_api/v201104/line_item_creative_association_service_registry.rb +37 -0
  210. data/lib/dfp_api/v201104/line_item_service.rb +56 -0
  211. data/lib/dfp_api/v201104/line_item_service_registry.rb +37 -0
  212. data/lib/dfp_api/v201104/network_service.rb +40 -0
  213. data/lib/dfp_api/v201104/network_service_registry.rb +37 -0
  214. data/lib/dfp_api/v201104/order_service.rb +56 -0
  215. data/lib/dfp_api/v201104/order_service_registry.rb +37 -0
  216. data/lib/dfp_api/v201104/placement_service.rb +56 -0
  217. data/lib/dfp_api/v201104/placement_service_registry.rb +37 -0
  218. data/lib/dfp_api/v201104/publisher_query_language_service.rb +32 -0
  219. data/lib/dfp_api/v201104/publisher_query_language_service_registry.rb +37 -0
  220. data/lib/dfp_api/v201104/report_service.rb +40 -0
  221. data/lib/dfp_api/v201104/report_service_registry.rb +37 -0
  222. data/lib/dfp_api/v201104/user_service.rb +60 -0
  223. data/lib/dfp_api/v201104/user_service_registry.rb +37 -0
  224. data/test/bugs/test_issue_00000016.rb +154 -0
  225. data/test/dfp_api/test_dfp_api.rb +64 -0
  226. metadata +248 -53
@@ -0,0 +1,86 @@
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 active placements. The statement retrieves up to the
21
+ # maximum page size limit of 500. To create a placement, run
22
+ # create_placements.rb.
23
+ #
24
+ # Tags: PlacementService.getPlacementsByStatement
25
+
26
+ require 'rubygems'
27
+ require 'dfp_api'
28
+
29
+ API_VERSION = :v201103
30
+
31
+ def get_placements_by_statement()
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 PlacementService.
40
+ placement_service = dfp.service(:PlacementService, API_VERSION)
41
+
42
+ # Create a statement to only select active placements.
43
+ statement = {
44
+ :query => 'WHERE status = :status LIMIT 500',
45
+ :values => [
46
+ {:key => 'status',
47
+ :value => {:value => 'ACTIVE', :xsi_type => 'TextValue'}}
48
+ ]
49
+ }
50
+
51
+ # Get placements by statement.
52
+ page = placement_service.get_placements_by_statement(statement)
53
+
54
+ if page and page[:results]
55
+ page[:results].each_with_index do |placement, index|
56
+ puts "%d) Placement ID: %d, name: %s, status: %s." % [index,
57
+ placement[:id], placement[:name], placement[:status]]
58
+ end
59
+ end
60
+
61
+ # Print a footer.
62
+ if page.include?(:total_result_set_size)
63
+ puts "Number of results found: %d" % page[:total_result_set_size]
64
+ end
65
+ end
66
+
67
+ if __FILE__ == $0
68
+ begin
69
+ get_placements_by_statement()
70
+
71
+ # HTTP errors.
72
+ rescue AdsCommon::Errors::HttpError => e
73
+ puts "HTTP Error: %s" % e
74
+
75
+ # API errors.
76
+ rescue DfpApi::Errors::ApiException => e
77
+ puts "Message: %s" % e.message
78
+ puts 'Errors:'
79
+ e.errors.each_with_index do |error, index|
80
+ puts "\tError [%d]:" % (index + 1)
81
+ error.each do |field, value|
82
+ puts "\t\t%s: %s" % [field, value]
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,96 @@
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 updates all placements to allow for AdSense targeting up to the
21
+ # first 500. To determine which placements exist, run get_all_placements.rb.
22
+ #
23
+ # Tags: PlacementService.updatePlacements
24
+
25
+ require 'rubygems'
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201103
29
+
30
+ def update_placements()
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 PlacementService.
39
+ placement_service = dfp.service(:PlacementService, API_VERSION)
40
+
41
+ # Create a statement to get first 500 placements.
42
+ statement = {:query => 'LIMIT 500'}
43
+
44
+ # Get placements by statement.
45
+ page = placement_service.get_placements_by_statement(statement)
46
+
47
+ if page[:results]
48
+ placements = page[:results]
49
+
50
+ # Update each local placement object by enabling AdSense targeting.
51
+ placements.each do |placement|
52
+ placement[:targeting_description] =
53
+ (placement[:description].nil? || placement[:description].empty?) ?
54
+ 'Generic description' : placement[:description]
55
+ placement[:targeting_ad_location] = 'All images on sports pages.'
56
+ placement[:targeting_site_name] = 'http://code.google.com'
57
+ placement[:is_ad_sense_targeting_enabled] = true
58
+ end
59
+
60
+ # Update the placements on the server.
61
+ return_placements = placement_service.update_placements(placements)
62
+
63
+ if return_placements
64
+ return_placements.each do |placement|
65
+ puts ("Placement ID: %d, name: %s was updated with AdSense targeting " +
66
+ "enabled: %s.") % [placement[:id], placement[:name],
67
+ placement[:is_ad_sense_targeting_enabled]]
68
+ end
69
+ else
70
+ raise 'No placements were updated.'
71
+ end
72
+ else
73
+ puts 'No placements found to update.'
74
+ end
75
+ end
76
+
77
+ if __FILE__ == $0
78
+ begin
79
+ update_placements()
80
+
81
+ # HTTP errors.
82
+ rescue AdsCommon::Errors::HttpError => e
83
+ puts "HTTP Error: %s" % e
84
+
85
+ # API errors.
86
+ rescue DfpApi::Errors::ApiException => e
87
+ puts "Message: %s" % e.message
88
+ puts 'Errors:'
89
+ e.errors.each_with_index do |error, index|
90
+ puts "\tError [%d]:" % (index + 1)
91
+ error.each do |field, value|
92
+ puts "\t\t%s: %s" % [field, value]
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,85 @@
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 first 500 cities available to target.
21
+ #
22
+ # Tags: PublisherQueryLanguageService.select
23
+
24
+ require 'rubygems'
25
+ require 'dfp_api'
26
+
27
+ API_VERSION = :v201103
28
+ # A string to separate columns in output. Use "," to get CSV.
29
+ COLUMN_SEPARATOR = "\t"
30
+
31
+ def get_all_cities()
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 PublisherQueryLanguageService.
40
+ pql_service = dfp.service(:PublisherQueryLanguageService, API_VERSION)
41
+
42
+ # Create statement to select all targetable cities.
43
+ statement = {:query => 'SELECT * FROM City WHERE targetable = true LIMIT 500'}
44
+
45
+ # Get all cities.
46
+ result_set = pql_service.select(statement)
47
+
48
+ if result_set
49
+ # Print out columns header.
50
+ columns = result_set[:column_types].collect {|col| col[:label_name]}
51
+ puts columns.join(COLUMN_SEPARATOR)
52
+
53
+ # Print out every row.
54
+ result_set[:rows].each do |row_set|
55
+ row = row_set[:values].collect {|item| item[:value]}
56
+ puts row.join(COLUMN_SEPARATOR)
57
+ end
58
+ end
59
+
60
+ # Print a footer.
61
+ if result_set[:rows]
62
+ puts "Total number of rows found: %d" % result_set[:rows].size
63
+ end
64
+ end
65
+
66
+ if __FILE__ == $0
67
+ begin
68
+ get_all_cities()
69
+
70
+ # HTTP errors.
71
+ rescue AdsCommon::Errors::HttpError => e
72
+ puts "HTTP Error: %s" % e
73
+
74
+ # API errors.
75
+ rescue DfpApi::Errors::ApiException => e
76
+ puts "Message: %s" % e.message
77
+ puts 'Errors:'
78
+ e.errors.each_with_index do |error, index|
79
+ puts "\tError [%d]:" % (index + 1)
80
+ error.each do |field, value|
81
+ puts "\t\t%s: %s" % [field, value]
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,85 @@
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 countries available to target.
21
+ #
22
+ # Tags: PublisherQueryLanguageService.select
23
+
24
+ require 'rubygems'
25
+ require 'dfp_api'
26
+
27
+ API_VERSION = :v201103
28
+ # A string to separate columns in output. Use "," to get CSV.
29
+ COLUMN_SEPARATOR = "\t"
30
+
31
+ def get_all_countries()
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 PublisherQueryLanguageService.
40
+ pql_service = dfp.service(:PublisherQueryLanguageService, API_VERSION)
41
+
42
+ # Create statement to select all targetable countries.
43
+ statement = {:query => 'SELECT * FROM Country WHERE targetable = true'}
44
+
45
+ # Get all countries.
46
+ result_set = pql_service.select(statement)
47
+
48
+ if result_set
49
+ # Print out columns header.
50
+ columns = result_set[:column_types].collect {|col| col[:label_name]}
51
+ puts columns.join(COLUMN_SEPARATOR)
52
+
53
+ # Print out every row.
54
+ result_set[:rows].each do |row_set|
55
+ row = row_set[:values].collect {|item| item[:value]}
56
+ puts row.join(COLUMN_SEPARATOR)
57
+ end
58
+ end
59
+
60
+ # Print a footer.
61
+ if result_set[:rows]
62
+ puts "Total number of rows found: %d" % result_set[:rows].size
63
+ end
64
+ end
65
+
66
+ if __FILE__ == $0
67
+ begin
68
+ get_all_countries()
69
+
70
+ # HTTP errors.
71
+ rescue AdsCommon::Errors::HttpError => e
72
+ puts "HTTP Error: %s" % e
73
+
74
+ # API errors.
75
+ rescue DfpApi::Errors::ApiException => e
76
+ puts "Message: %s" % e.message
77
+ puts 'Errors:'
78
+ e.errors.each_with_index do |error, index|
79
+ puts "\tError [%d]:" % (index + 1)
80
+ error.each do |field, value|
81
+ puts "\t\t%s: %s" % [field, value]
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,85 @@
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 metros available to target.
21
+ #
22
+ # Tags: PublisherQueryLanguageService.select
23
+
24
+ require 'rubygems'
25
+ require 'dfp_api'
26
+
27
+ API_VERSION = :v201103
28
+ # A string to separate columns in output. Use "," to get CSV.
29
+ COLUMN_SEPARATOR = "\t"
30
+
31
+ def get_all_metros()
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 PublisherQueryLanguageService.
40
+ pql_service = dfp.service(:PublisherQueryLanguageService, API_VERSION)
41
+
42
+ # Create statement to select all targetable metros.
43
+ statement = {:query => 'SELECT * FROM Metro WHERE targetable = true'}
44
+
45
+ # Get all metros.
46
+ result_set = pql_service.select(statement)
47
+
48
+ if result_set
49
+ # Print out columns header.
50
+ columns = result_set[:column_types].collect {|col| col[:label_name]}
51
+ puts columns.join(COLUMN_SEPARATOR)
52
+
53
+ # Print out every row.
54
+ result_set[:rows].each do |row_set|
55
+ row = row_set[:values].collect {|item| item[:value]}
56
+ puts row.join(COLUMN_SEPARATOR)
57
+ end
58
+ end
59
+
60
+ # Print a footer.
61
+ if result_set[:rows]
62
+ puts "Total number of rows found: %d" % result_set[:rows].size
63
+ end
64
+ end
65
+
66
+ if __FILE__ == $0
67
+ begin
68
+ get_all_metros()
69
+
70
+ # HTTP errors.
71
+ rescue AdsCommon::Errors::HttpError => e
72
+ puts "HTTP Error: %s" % e
73
+
74
+ # API errors.
75
+ rescue DfpApi::Errors::ApiException => e
76
+ puts "Message: %s" % e.message
77
+ puts 'Errors:'
78
+ e.errors.each_with_index do |error, index|
79
+ puts "\tError [%d]:" % (index + 1)
80
+ error.each do |field, value|
81
+ puts "\t\t%s: %s" % [field, value]
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,85 @@
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 regions available to target.
21
+ #
22
+ # Tags: PublisherQueryLanguageService.select
23
+
24
+ require 'rubygems'
25
+ require 'dfp_api'
26
+
27
+ API_VERSION = :v201103
28
+ # A string to separate columns in output. Use "," to get CSV.
29
+ COLUMN_SEPARATOR = "\t"
30
+
31
+ def get_all_regions()
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 PublisherQueryLanguageService.
40
+ pql_service = dfp.service(:PublisherQueryLanguageService, API_VERSION)
41
+
42
+ # Create statement to select all targetable regions.
43
+ statement = {:query => 'SELECT * FROM Region WHERE targetable = true'}
44
+
45
+ # Get all regions.
46
+ result_set = pql_service.select(statement)
47
+
48
+ if result_set
49
+ # Print out columns header.
50
+ columns = result_set[:column_types].collect {|col| col[:label_name]}
51
+ puts columns.join(COLUMN_SEPARATOR)
52
+
53
+ # Print out every row.
54
+ result_set[:rows].each do |row_set|
55
+ row = row_set[:values].collect {|item| item[:value]}
56
+ puts row.join(COLUMN_SEPARATOR)
57
+ end
58
+ end
59
+
60
+ # Print a footer.
61
+ if result_set[:rows]
62
+ puts "Total number of rows found: %d" % result_set[:rows].size
63
+ end
64
+ end
65
+
66
+ if __FILE__ == $0
67
+ begin
68
+ get_all_regions()
69
+
70
+ # HTTP errors.
71
+ rescue AdsCommon::Errors::HttpError => e
72
+ puts "HTTP Error: %s" % e
73
+
74
+ # API errors.
75
+ rescue DfpApi::Errors::ApiException => e
76
+ puts "Message: %s" % e.message
77
+ puts 'Errors:'
78
+ e.errors.each_with_index do |error, index|
79
+ puts "\tError [%d]:" % (index + 1)
80
+ error.each do |field, value|
81
+ puts "\t\t%s: %s" % [field, value]
82
+ end
83
+ end
84
+ end
85
+ end