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,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 creates new line item creative associations (LICAs) for an
21
+ # existing line item and a set of creative ids. For small business networks,
22
+ # the creative ids must represent new or copied creatives as creatives cannot
23
+ # be used for more than one line item. For premium solution networks, the
24
+ # creative ids can represent any creatvie. To copy creatives, run
25
+ # copy_image_creatives.rb. To determine which LICAs exist, run get_all_licas.rb.
26
+ #
27
+ # Tags: LineItemCreativeAssociationService.createLineItemCreativeAssociations
28
+
29
+ require 'rubygems'
30
+ require 'dfp_api'
31
+
32
+ API_VERSION = :v201103
33
+
34
+ def create_licas()
35
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
36
+ dfp = DfpApi::Api.new
37
+
38
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
39
+ # the configuration file or provide your own logger:
40
+ # dfp.logger = Logger.new('dfp_xml.log')
41
+
42
+ # Get the LineItemCreativeAssociationService.
43
+ lica_service = dfp.service(:LineItemCreativeAssociationService, API_VERSION)
44
+
45
+ # Get the CreativeService.
46
+ creative_service = dfp.service(:CreativeService, API_VERSION)
47
+
48
+ # Set the line item ID and creative IDs to associate.
49
+ line_item_id = 'INSERT_LINE_ITEM_ID_HERE'.to_i
50
+ creative_ids = [
51
+ 'INSERT_CREATIVE_ID_HERE'.to_i,
52
+ 'INSERT_CREATIVE_ID_HERE'.to_i
53
+ ]
54
+
55
+ # Create an array to store local LICA objects.
56
+ licas = creative_ids.map do |creative_id|
57
+ # For each line item, associate it with the given creative.
58
+ {:line_item_id => line_item_id, :creative_id => creative_id}
59
+ end
60
+
61
+ # Create the LICAs on the server.
62
+ return_licas = lica_service.create_line_item_creative_associations(licas)
63
+
64
+ if return_licas
65
+ return_licas.each do |lica|
66
+ puts ("LICA with line item ID: %d, creative ID: %d and status: %s was " +
67
+ "created.") % [lica[:line_item_id], lica[:creative_id], lica[:status]]
68
+ end
69
+ else
70
+ raise 'No LICAs were created.'
71
+ end
72
+
73
+ end
74
+
75
+ if __FILE__ == $0
76
+ begin
77
+ create_licas()
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,127 @@
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 deactivates all LICAs for the line item. To determine which LICAs
21
+ # exist, run get_all_licas.rb. To determine which line items exist, run
22
+ # get_all_line_items.rb.
23
+ #
24
+ # Tags: InventoryService.getLineItemsByStatement,
25
+ # InventoryService.performAdUnitAction
26
+
27
+ require 'rubygems'
28
+ require 'dfp_api'
29
+
30
+ API_VERSION = :v201103
31
+ PAGE_SIZE = 500
32
+
33
+ def deactivate_licas()
34
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
35
+ dfp = DfpApi::Api.new
36
+
37
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
38
+ # the configuration file or provide your own logger:
39
+ # dfp.logger = Logger.new('dfp_xml.log')
40
+
41
+ # Get the LineItemCreativeAssociationService.
42
+ lica_service = dfp.service(:LineItemCreativeAssociationService, API_VERSION)
43
+
44
+ # Set the line item to get LICAs by.
45
+ line_item_id = 'INSERT_LINE_ITEM_ID_HERE'.to_i
46
+
47
+ # Create statement text to select active LICAs for a given line item.
48
+ statement_text = 'WHERE lineItemId = :line_item_id AND status = :status'
49
+
50
+ statement = {
51
+ :values => [
52
+ {:key => 'line_item_id',
53
+ :value => {:value => line_item_id, :xsi_type => 'NumberValue'}},
54
+ {:key => 'status',
55
+ :value => {:value => 'ACTIVE', :xsi_type => 'TextValue'}}
56
+ ]
57
+ }
58
+
59
+ # Define initial values.
60
+ offset = 0
61
+ page = Hash.new
62
+ creative_ids = Array.new
63
+
64
+ begin
65
+ # Create a statement to get one page with current offset.
66
+ statement[:query] = statement_text +
67
+ " LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]
68
+
69
+ # Get LICAs by statement.
70
+ page =
71
+ lica_service.get_line_item_creative_associations_by_statement(statement)
72
+
73
+ if page[:results]
74
+ # Increase query offset by page size.
75
+ offset += PAGE_SIZE
76
+
77
+ page[:results].each do |lica|
78
+ puts ("%d) LICA with line item ID: %d, creative ID: %d and status: %s" +
79
+ " will be deactivated.") % [creative_ids.size, lica[:line_item_id],
80
+ lica[:creative_id], lica[:status]]
81
+ creative_ids << lica[:creative_id]
82
+ end
83
+ end
84
+ end while offset < page[:total_result_set_size]
85
+
86
+ puts "Number of LICAs to be deactivated: %d" % creative_ids.size
87
+
88
+ if !creative_ids.empty?
89
+ # Modify statement for action. Note, the values are still present.
90
+ statement[:query] = statement_text + " AND creativeId IN (%s)" %
91
+ creative_ids.join(', ')
92
+
93
+ # Perform action.
94
+ result = lica_service.perform_line_item_creative_association_action(
95
+ {:xsi_type => 'DeactivateLineItemCreativeAssociations'}, statement)
96
+
97
+ # Display results.
98
+ if result and result[:num_changes] > 0
99
+ puts "Number of LICAs deactivated: %d" % result[:num_changes]
100
+ else
101
+ puts 'No LICAs were deactivated.'
102
+ end
103
+ else
104
+ puts 'No LICAs found to deactivate.'
105
+ end
106
+ end
107
+
108
+ if __FILE__ == $0
109
+ begin
110
+ deactivate_licas()
111
+
112
+ # HTTP errors.
113
+ rescue AdsCommon::Errors::HttpError => e
114
+ puts "HTTP Error: %s" % e
115
+
116
+ # API errors.
117
+ rescue DfpApi::Errors::ApiException => e
118
+ puts "Message: %s" % e.message
119
+ puts 'Errors:'
120
+ e.errors.each_with_index do |error, index|
121
+ puts "\tError [%d]:" % (index + 1)
122
+ error.each do |field, value|
123
+ puts "\t\t%s: %s" % [field, value]
124
+ end
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,95 @@
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 item creative associations (LICA). To create LICAs,
21
+ # run create_licas.rb.
22
+ #
23
+ # Tags: LineItemCreativeAssociationService.getLineItemCreativeAssociationsByStatement
24
+
25
+ require 'rubygems'
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201103
29
+ PAGE_SIZE = 500
30
+
31
+ def get_all_licas()
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 LineItemCreativeAssociationService.
40
+ lica_service = dfp.service(:LineItemCreativeAssociationService, API_VERSION)
41
+
42
+ # Define initial values.
43
+ offset = 0
44
+ page = Hash.new
45
+
46
+ begin
47
+ # Create statement for one page with current offset.
48
+ statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
49
+
50
+ # Get LICAs by statement.
51
+ page =
52
+ lica_service.get_line_item_creative_associations_by_statement(statement)
53
+
54
+ if page[:results]
55
+ # Increase query offset by page size.
56
+ offset += PAGE_SIZE
57
+
58
+ # Get the start index for printout.
59
+ start_index = page[:start_index]
60
+
61
+ # Print details about each LICA in results page.
62
+ page[:results].each_with_index do |lica, index|
63
+ puts "%d) LICA with line item ID: %d, creative ID: %d and status: %s" %
64
+ [index + start_index, lica[:line_item_id], lica[:creative_id],
65
+ lica[:status]]
66
+ end
67
+ end
68
+ end while offset < page[:total_result_set_size]
69
+
70
+ # Print a footer
71
+ if page.include?(:total_result_set_size)
72
+ puts "Total number of LICAs: %d" % page[:total_result_set_size]
73
+ end
74
+ end
75
+
76
+ if __FILE__ == $0
77
+ begin
78
+ get_all_licas()
79
+
80
+ # HTTP errors.
81
+ rescue AdsCommon::Errors::HttpError => e
82
+ puts "HTTP Error: %s" % e
83
+
84
+ # API errors.
85
+ rescue DfpApi::Errors::ApiException => e
86
+ puts "Message: %s" % e.message
87
+ puts 'Errors:'
88
+ e.errors.each_with_index do |error, index|
89
+ puts "\tError [%d]:" % (index + 1)
90
+ error.each do |field, value|
91
+ puts "\t\t%s: %s" % [field, value]
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,77 @@
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 creative association (LICA) by the line item and
21
+ # creative ID. To determine which line items exist, run get_all_line_items.rb.
22
+ # To determine which creatives exit, run get_all_creatives.rb.
23
+ #
24
+ # Tags: LineItemCreativeAssociationService.getLineItemCreativeAssociation
25
+
26
+ require 'rubygems'
27
+ require 'dfp_api'
28
+
29
+ API_VERSION = :v201103
30
+
31
+ def get_lica()
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 LineItemCreativeAssociationService.
40
+ lica_service = dfp.service(:LineItemCreativeAssociationService, API_VERSION)
41
+
42
+ # Set the line item and creative IDs to use to retrieve the LICA.
43
+ line_item_id = 'INSERT_LINE_ITEM_ID_HERE'.to_i
44
+ creative_id = 'INSERT_CREATIVE_ID_HERE'.to_i
45
+
46
+ # Get the LICA.
47
+ lica =
48
+ lica_service.get_line_item_creative_association(line_item_id, creative_id)
49
+
50
+ if lica
51
+ puts ("LICA with line item ID: %d, creative ID: %d and status: %s was " +
52
+ "found.") % [lica[:line_item_id], lica[:creative_id], lica[:status]]
53
+ else
54
+ puts 'No lica found for this ID.'
55
+ end
56
+ end
57
+
58
+ if __FILE__ == $0
59
+ begin
60
+ get_lica()
61
+
62
+ # HTTP errors.
63
+ rescue AdsCommon::Errors::HttpError => e
64
+ puts "HTTP Error: %s" % e
65
+
66
+ # API errors.
67
+ rescue DfpApi::Errors::ApiException => e
68
+ puts "Message: %s" % e.message
69
+ puts 'Errors:'
70
+ e.errors.each_with_index do |error, index|
71
+ puts "\tError [%d]:" % (index + 1)
72
+ error.each do |field, value|
73
+ puts "\t\t%s: %s" % [field, value]
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,91 @@
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 item creative associations for a given line item
21
+ # ID. The statement retrieves up to the maximum page size limit of 500. To
22
+ # create LICAs, run create_licas.rb. To determine which line items exist, run
23
+ # get_all_line_items.rb.
24
+ #
25
+ # Tags: LineItemCreativeAssociationService.getLineItemCreativeAssociationsByStatement
26
+
27
+ require 'rubygems'
28
+ require 'dfp_api'
29
+
30
+ API_VERSION = :v201103
31
+
32
+ def get_licas_by_statement()
33
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
34
+ dfp = DfpApi::Api.new
35
+
36
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
37
+ # the configuration file or provide your own logger:
38
+ # dfp.logger = Logger.new('dfp_xml.log')
39
+
40
+ # Get the LineItemCreativeAssociationService.
41
+ lica_service = dfp.service(:LineItemCreativeAssociationService, API_VERSION)
42
+
43
+ # Set the line item to get LICAs by.
44
+ line_item_id = 'INSERT_LINE_ITEM_ID_HERE'.to_i
45
+
46
+ # Create a statement to only select LICAs for the given line item ID.
47
+ statement = {
48
+ :query => 'WHERE lineItemId = :line_item_id LIMIT 500',
49
+ :values => [
50
+ {:key => 'line_item_id',
51
+ :value => {:value => line_item_id, :xsi_type => 'NumberValue'}}
52
+ ]
53
+ }
54
+
55
+ # Get LICAs by statement.
56
+ page =
57
+ lica_service.get_line_item_creative_associations_by_statement(statement)
58
+
59
+ if page and page[:results]
60
+ page[:results].each_with_index do |lica, index|
61
+ puts "%d) LICA with line item ID: %d, creative ID: %d and status: %s." %
62
+ [index, lica[:line_item_id], lica[:creative_id], lica[:status]]
63
+ end
64
+ end
65
+
66
+ # Print a footer.
67
+ if page.include?(:total_result_set_size)
68
+ puts "Number of results found: %d" % page[:total_result_set_size]
69
+ end
70
+ end
71
+
72
+ if __FILE__ == $0
73
+ begin
74
+ get_licas_by_statement()
75
+
76
+ # HTTP errors.
77
+ rescue AdsCommon::Errors::HttpError => e
78
+ puts "HTTP Error: %s" % e
79
+
80
+ # API errors.
81
+ rescue DfpApi::Errors::ApiException => e
82
+ puts "Message: %s" % e.message
83
+ puts 'Errors:'
84
+ e.errors.each_with_index do |error, index|
85
+ puts "\tError [%d]:" % (index + 1)
86
+ error.each do |field, value|
87
+ puts "\t\t%s: %s" % [field, value]
88
+ end
89
+ end
90
+ end
91
+ end