google-dfp-api 0.6.1 → 0.6.2

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 (206) hide show
  1. data/ChangeLog +3 -0
  2. data/examples/v201302/activity_group_service/create_activity_groups.rb +94 -0
  3. data/examples/v201302/activity_group_service/get_active_activity_groups.rb +100 -0
  4. data/examples/v201302/activity_group_service/get_all_activity_groups.rb +95 -0
  5. data/examples/v201302/activity_group_service/update_activity_groups.rb +87 -0
  6. data/examples/v201302/activity_service/create_activities.rb +91 -0
  7. data/examples/v201302/activity_service/get_active_activities.rb +107 -0
  8. data/examples/v201302/activity_service/get_all_activities.rb +144 -0
  9. data/examples/v201302/activity_service/update_activities.rb +85 -0
  10. data/examples/v201302/audience_segment_service/get_all_audience_segments.rb +93 -0
  11. data/examples/v201302/common/error_handling.rb +76 -0
  12. data/examples/v201302/common/oauth2_handling.rb +128 -0
  13. data/examples/v201302/common/oauth2_jwt_handling.rb +107 -0
  14. data/examples/v201302/company_service/create_companies.rb +81 -0
  15. data/examples/v201302/company_service/get_all_companies.rb +92 -0
  16. data/examples/v201302/company_service/get_companies_by_statement.rb +88 -0
  17. data/examples/v201302/company_service/get_company.rb +72 -0
  18. data/examples/v201302/company_service/update_companies.rb +102 -0
  19. data/examples/v201302/contact_service/create_contacts.rb +95 -0
  20. data/examples/v201302/contact_service/get_all_contacts.rb +92 -0
  21. data/examples/v201302/contact_service/get_uninvited_contacts.rb +102 -0
  22. data/examples/v201302/contact_service/update_contacts.rb +84 -0
  23. data/examples/v201302/content_service/get_all_content.rb +94 -0
  24. data/examples/v201302/content_service/get_content_by_category.rb +143 -0
  25. data/examples/v201302/creative_service/copy_image_creatives.rb +115 -0
  26. data/examples/v201302/creative_service/create_creative_from_template.rb +139 -0
  27. data/examples/v201302/creative_service/create_creatives.rb +112 -0
  28. data/examples/v201302/creative_service/create_custom_creative.rb +104 -0
  29. data/examples/v201302/creative_service/get_all_creatives.rb +93 -0
  30. data/examples/v201302/creative_service/get_creative.rb +72 -0
  31. data/examples/v201302/creative_service/get_creatives_by_statement.rb +87 -0
  32. data/examples/v201302/creative_service/update_creatives.rb +96 -0
  33. data/examples/v201302/creative_set_service/associate_creative_set_to_line_item.rb +77 -0
  34. data/examples/v201302/creative_set_service/create_creative_set.rb +83 -0
  35. data/examples/v201302/creative_set_service/get_all_creative_sets.rb +94 -0
  36. data/examples/v201302/creative_set_service/get_creative_sets_by_statement.rb +90 -0
  37. data/examples/v201302/creative_set_service/update_creative_sets.rb +85 -0
  38. data/examples/v201302/creative_template_service/get_all_creative_templates.rb +94 -0
  39. data/examples/v201302/creative_template_service/get_creative_template.rb +74 -0
  40. data/examples/v201302/creative_template_service/get_creative_templates_by_statement.rb +80 -0
  41. data/examples/v201302/creative_wrapper_service/create_creative_wrappers.rb +89 -0
  42. data/examples/v201302/creative_wrapper_service/deactivate_creative_wrapper.rb +102 -0
  43. data/examples/v201302/creative_wrapper_service/get_all_creative_wrappers.rb +94 -0
  44. data/examples/v201302/creative_wrapper_service/get_creative_wrappers_by_statement.rb +88 -0
  45. data/examples/v201302/creative_wrapper_service/update_creative_wrappers.rb +86 -0
  46. data/examples/v201302/custom_field_service/create_custom_field_options.rb +87 -0
  47. data/examples/v201302/custom_field_service/create_custom_fields.rb +86 -0
  48. data/examples/v201302/custom_field_service/deactivate_all_line_item_custom_fields.rb +112 -0
  49. data/examples/v201302/custom_field_service/get_all_custom_fields.rb +102 -0
  50. data/examples/v201302/custom_field_service/get_all_line_item_custom_fields.rb +86 -0
  51. data/examples/v201302/custom_field_service/set_line_item_custom_field_value.rb +135 -0
  52. data/examples/v201302/custom_field_service/update_custom_fields.rb +84 -0
  53. data/examples/v201302/custom_targeting_service/create_custom_targeting_keys_and_values.rb +140 -0
  54. data/examples/v201302/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
  55. data/examples/v201302/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
  56. data/examples/v201302/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
  57. data/examples/v201302/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
  58. data/examples/v201302/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
  59. data/examples/v201302/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
  60. data/examples/v201302/custom_targeting_service/update_custom_targeting_values.rb +106 -0
  61. data/examples/v201302/forecast_service/get_forecast.rb +107 -0
  62. data/examples/v201302/forecast_service/get_forecast_by_id.rb +80 -0
  63. data/examples/v201302/inventory_service/create_ad_units.rb +101 -0
  64. data/examples/v201302/inventory_service/create_mobile_ad_unit.rb +101 -0
  65. data/examples/v201302/inventory_service/create_video_ad_unit.rb +108 -0
  66. data/examples/v201302/inventory_service/deactivate_ad_units.rb +119 -0
  67. data/examples/v201302/inventory_service/get_ad_unit.rb +72 -0
  68. data/examples/v201302/inventory_service/get_ad_unit_sizes.rb +85 -0
  69. data/examples/v201302/inventory_service/get_ad_units_by_statement.rb +96 -0
  70. data/examples/v201302/inventory_service/get_all_ad_units.rb +93 -0
  71. data/examples/v201302/inventory_service/update_ad_units.rb +96 -0
  72. data/examples/v201302/label_service/create_labels.rb +83 -0
  73. data/examples/v201302/label_service/deactivate_labels.rb +118 -0
  74. data/examples/v201302/label_service/get_all_labels.rb +95 -0
  75. data/examples/v201302/label_service/get_label.rb +76 -0
  76. data/examples/v201302/label_service/get_labels_by_statement.rb +81 -0
  77. data/examples/v201302/label_service/update_labels.rb +102 -0
  78. data/examples/v201302/line_item_creative_association_service/create_licas.rb +94 -0
  79. data/examples/v201302/line_item_creative_association_service/deactivate_licas.rb +127 -0
  80. data/examples/v201302/line_item_creative_association_service/get_all_licas.rb +98 -0
  81. data/examples/v201302/line_item_creative_association_service/get_lica.rb +77 -0
  82. data/examples/v201302/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
  83. data/examples/v201302/line_item_creative_association_service/update_licas.rb +91 -0
  84. data/examples/v201302/line_item_service/activate_line_items.rb +131 -0
  85. data/examples/v201302/line_item_service/create_line_items.rb +177 -0
  86. data/examples/v201302/line_item_service/create_mobile_line_item.rb +135 -0
  87. data/examples/v201302/line_item_service/create_video_line_item.rb +158 -0
  88. data/examples/v201302/line_item_service/get_all_line_items.rb +94 -0
  89. data/examples/v201302/line_item_service/get_line_item.rb +74 -0
  90. data/examples/v201302/line_item_service/get_line_items_by_statement.rb +93 -0
  91. data/examples/v201302/line_item_service/get_recently_updated_line_items.rb +98 -0
  92. data/examples/v201302/line_item_service/target_custom_criteria.rb +129 -0
  93. data/examples/v201302/line_item_service/update_line_items.rb +109 -0
  94. data/examples/v201302/network_service/get_all_networks.rb +74 -0
  95. data/examples/v201302/network_service/get_current_network.rb +66 -0
  96. data/examples/v201302/network_service/make_test_network.rb +79 -0
  97. data/examples/v201302/order_service/approve_orders.rb +122 -0
  98. data/examples/v201302/order_service/create_orders.rb +92 -0
  99. data/examples/v201302/order_service/get_all_orders.rb +93 -0
  100. data/examples/v201302/order_service/get_order.rb +74 -0
  101. data/examples/v201302/order_service/get_orders_by_statement.rb +90 -0
  102. data/examples/v201302/order_service/update_orders.rb +97 -0
  103. data/examples/v201302/placement_service/create_placements.rb +131 -0
  104. data/examples/v201302/placement_service/deactivate_placements.rb +118 -0
  105. data/examples/v201302/placement_service/get_all_placements.rb +93 -0
  106. data/examples/v201302/placement_service/get_placement.rb +74 -0
  107. data/examples/v201302/placement_service/get_placements_by_statement.rb +86 -0
  108. data/examples/v201302/placement_service/update_placements.rb +97 -0
  109. data/examples/v201302/publisher_query_language_service/get_all_cities.rb +104 -0
  110. data/examples/v201302/report_service/display_report.rb +81 -0
  111. data/examples/v201302/report_service/download_report.rb +81 -0
  112. data/examples/v201302/report_service/run_delivery_report.rb +103 -0
  113. data/examples/v201302/report_service/run_inventory_report.rb +96 -0
  114. data/examples/v201302/report_service/run_merged_delivery_report.rb +94 -0
  115. data/examples/v201302/report_service/run_reach_report.rb +87 -0
  116. data/examples/v201302/report_service/run_report_with_custom_fields.rb +135 -0
  117. data/examples/v201302/report_service/run_sales_report.rb +92 -0
  118. data/examples/v201302/suggested_ad_unit_service/approve_all_suggested_ad_units.rb +109 -0
  119. data/examples/v201302/suggested_ad_unit_service/get_all_suggested_ad_units.rb +96 -0
  120. data/examples/v201302/suggested_ad_unit_service/get_suggested_ad_unit.rb +75 -0
  121. data/examples/v201302/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +92 -0
  122. data/examples/v201302/team_service/create_teams.rb +83 -0
  123. data/examples/v201302/team_service/get_all_teams.rb +92 -0
  124. data/examples/v201302/team_service/get_team.rb +74 -0
  125. data/examples/v201302/team_service/get_teams_by_statement.rb +78 -0
  126. data/examples/v201302/team_service/update_teams.rb +97 -0
  127. data/examples/v201302/third_party_slot_service/archive_third_party_slots.rb +125 -0
  128. data/examples/v201302/third_party_slot_service/create_third_party_slot.rb +91 -0
  129. data/examples/v201302/third_party_slot_service/get_all_third_party_slots.rb +93 -0
  130. data/examples/v201302/third_party_slot_service/get_third_party_slot_by_statement.rb +86 -0
  131. data/examples/v201302/third_party_slot_service/update_third_party_slots.rb +95 -0
  132. data/examples/v201302/user_service/create_users.rb +89 -0
  133. data/examples/v201302/user_service/deactivate_users.rb +97 -0
  134. data/examples/v201302/user_service/get_all_roles.rb +73 -0
  135. data/examples/v201302/user_service/get_all_users.rb +93 -0
  136. data/examples/v201302/user_service/get_current_user.rb +66 -0
  137. data/examples/v201302/user_service/get_user.rb +73 -0
  138. data/examples/v201302/user_service/get_users_by_statement.rb +79 -0
  139. data/examples/v201302/user_service/update_users.rb +89 -0
  140. data/examples/v201302/user_team_association_service/create_user_team_associations.rb +86 -0
  141. data/examples/v201302/user_team_association_service/delete_user_team_associations.rb +111 -0
  142. data/examples/v201302/user_team_association_service/get_all_user_team_associations.rb +94 -0
  143. data/examples/v201302/user_team_association_service/get_user_team_association.rb +76 -0
  144. data/examples/v201302/user_team_association_service/get_user_team_associations_by_statement.rb +94 -0
  145. data/examples/v201302/user_team_association_service/update_user_team_associations.rb +102 -0
  146. data/lib/dfp_api/api_config.rb +17 -4
  147. data/lib/dfp_api/v201302/activity_group_service.rb +54 -0
  148. data/lib/dfp_api/v201302/activity_group_service_registry.rb +46 -0
  149. data/lib/dfp_api/v201302/activity_service.rb +54 -0
  150. data/lib/dfp_api/v201302/activity_service_registry.rb +46 -0
  151. data/lib/dfp_api/v201302/ad_rule_service.rb +58 -0
  152. data/lib/dfp_api/v201302/ad_rule_service_registry.rb +46 -0
  153. data/lib/dfp_api/v201302/audience_segment_service.rb +34 -0
  154. data/lib/dfp_api/v201302/audience_segment_service_registry.rb +46 -0
  155. data/lib/dfp_api/v201302/company_service.rb +54 -0
  156. data/lib/dfp_api/v201302/company_service_registry.rb +46 -0
  157. data/lib/dfp_api/v201302/contact_service.rb +54 -0
  158. data/lib/dfp_api/v201302/contact_service_registry.rb +46 -0
  159. data/lib/dfp_api/v201302/content_bundle_service.rb +58 -0
  160. data/lib/dfp_api/v201302/content_bundle_service_registry.rb +46 -0
  161. data/lib/dfp_api/v201302/content_service.rb +38 -0
  162. data/lib/dfp_api/v201302/content_service_registry.rb +46 -0
  163. data/lib/dfp_api/v201302/creative_service.rb +54 -0
  164. data/lib/dfp_api/v201302/creative_service_registry.rb +46 -0
  165. data/lib/dfp_api/v201302/creative_set_service.rb +46 -0
  166. data/lib/dfp_api/v201302/creative_set_service_registry.rb +46 -0
  167. data/lib/dfp_api/v201302/creative_template_service.rb +38 -0
  168. data/lib/dfp_api/v201302/creative_template_service_registry.rb +46 -0
  169. data/lib/dfp_api/v201302/creative_wrapper_service.rb +58 -0
  170. data/lib/dfp_api/v201302/creative_wrapper_service_registry.rb +46 -0
  171. data/lib/dfp_api/v201302/custom_field_service.rb +78 -0
  172. data/lib/dfp_api/v201302/custom_field_service_registry.rb +46 -0
  173. data/lib/dfp_api/v201302/custom_targeting_service.rb +62 -0
  174. data/lib/dfp_api/v201302/custom_targeting_service_registry.rb +46 -0
  175. data/lib/dfp_api/v201302/forecast_service.rb +38 -0
  176. data/lib/dfp_api/v201302/forecast_service_registry.rb +46 -0
  177. data/lib/dfp_api/v201302/inventory_service.rb +62 -0
  178. data/lib/dfp_api/v201302/inventory_service_registry.rb +46 -0
  179. data/lib/dfp_api/v201302/label_service.rb +58 -0
  180. data/lib/dfp_api/v201302/label_service_registry.rb +46 -0
  181. data/lib/dfp_api/v201302/line_item_creative_association_service.rb +62 -0
  182. data/lib/dfp_api/v201302/line_item_creative_association_service_registry.rb +46 -0
  183. data/lib/dfp_api/v201302/line_item_service.rb +58 -0
  184. data/lib/dfp_api/v201302/line_item_service_registry.rb +46 -0
  185. data/lib/dfp_api/v201302/network_service.rb +46 -0
  186. data/lib/dfp_api/v201302/network_service_registry.rb +46 -0
  187. data/lib/dfp_api/v201302/order_service.rb +58 -0
  188. data/lib/dfp_api/v201302/order_service_registry.rb +46 -0
  189. data/lib/dfp_api/v201302/placement_service.rb +58 -0
  190. data/lib/dfp_api/v201302/placement_service_registry.rb +46 -0
  191. data/lib/dfp_api/v201302/publisher_query_language_service.rb +34 -0
  192. data/lib/dfp_api/v201302/publisher_query_language_service_registry.rb +46 -0
  193. data/lib/dfp_api/v201302/report_service.rb +46 -0
  194. data/lib/dfp_api/v201302/report_service_registry.rb +46 -0
  195. data/lib/dfp_api/v201302/suggested_ad_unit_service.rb +42 -0
  196. data/lib/dfp_api/v201302/suggested_ad_unit_service_registry.rb +46 -0
  197. data/lib/dfp_api/v201302/team_service.rb +54 -0
  198. data/lib/dfp_api/v201302/team_service_registry.rb +46 -0
  199. data/lib/dfp_api/v201302/third_party_slot_service.rb +46 -0
  200. data/lib/dfp_api/v201302/third_party_slot_service_registry.rb +46 -0
  201. data/lib/dfp_api/v201302/user_service.rb +66 -0
  202. data/lib/dfp_api/v201302/user_service_registry.rb +46 -0
  203. data/lib/dfp_api/v201302/user_team_association_service.rb +58 -0
  204. data/lib/dfp_api/v201302/user_team_association_service_registry.rb +46 -0
  205. data/lib/dfp_api/version.rb +1 -1
  206. metadata +988 -786
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This code example gets all web target platform ad unit sizes.
22
+ #
23
+ # Tags: InventoryService.getAdUnitSizesByStatement
24
+
25
+ require 'dfp_api'
26
+
27
+ API_VERSION = :v201302
28
+
29
+ def get_all_ad_unit_sizes()
30
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
31
+ dfp = DfpApi::Api.new
32
+
33
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
34
+ # the configuration file or provide your own logger:
35
+ # dfp.logger = Logger.new('dfp_xml.log')
36
+
37
+ # Get the InventoryService.
38
+ inventory_service = dfp.service(:InventoryService, API_VERSION)
39
+
40
+ target_platform = 'WEB'
41
+
42
+ # Create statement object to only select web ad unit sizes.
43
+ statement = {
44
+ :query => 'WHERE targetPlatform = :target_platform',
45
+ :values => [
46
+ {:key => 'target_platform',
47
+ :value => {:value => target_platform,
48
+ :xsi_type => 'TextValue'}}
49
+ ]
50
+ }
51
+
52
+ # Get ad unit sizes by statement.
53
+ ad_unit_sizes = inventory_service.get_ad_unit_sizes_by_statement(statement)
54
+
55
+ if ad_unit_sizes
56
+ # Print details about each ad unit in results.
57
+ ad_unit_sizes.each_with_index do |ad_unit_size, index|
58
+ puts "%d) Web ad unit size of dimensions %s was found." %
59
+ [index, ad_unit_size[:full_display_string]]
60
+ end
61
+ else
62
+ puts 'No ad unit sizes found.'
63
+ end
64
+ end
65
+
66
+ if __FILE__ == $0
67
+ begin
68
+ get_all_ad_unit_sizes()
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,96 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example gets first 500 children below the effective root ad unit. To
22
+ # create ad units, run create_ad_units.rb.
23
+ #
24
+ # Tags: InventoryService.getAdUnitsByStatement, NetworkService.getCurrentNetwork
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201302
29
+
30
+ def get_ad_units_by_statement()
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 InventoryService.
39
+ inventory_service = dfp.service(:InventoryService, API_VERSION)
40
+
41
+ # Get the NetworkService.
42
+ network_service = dfp.service(:NetworkService, API_VERSION)
43
+
44
+ # Get the effective root ad unit ID of the network.
45
+ effective_root_ad_unit_id =
46
+ network_service.get_current_network[:effective_root_ad_unit_id]
47
+
48
+ puts "Using effective root ad unit: %d" % effective_root_ad_unit_id
49
+
50
+ # Create a statement to select the children of the effective root ad unit.
51
+ statement = {
52
+ :query => 'WHERE parentId = :id LIMIT 500',
53
+ :values => [
54
+ {:key => 'id',
55
+ :value => {:value => effective_root_ad_unit_id,
56
+ :xsi_type => 'NumberValue'}}
57
+ ]
58
+ }
59
+
60
+ # Get ad units by statement.
61
+ page = inventory_service.get_ad_units_by_statement(statement)
62
+
63
+ if page[:results]
64
+ # Print details about each ad unit in results.
65
+ page[:results].each_with_index do |ad_unit, index|
66
+ puts "%d) Ad unit ID: %d, name: %s, status: %s." %
67
+ [index, ad_unit[:id], ad_unit[:name], ad_unit[:status]]
68
+ end
69
+ end
70
+
71
+ # Print a footer.
72
+ if page.include?(:total_result_set_size)
73
+ puts "Total number of ad units: %d" % page[:total_result_set_size]
74
+ end
75
+ end
76
+
77
+ if __FILE__ == $0
78
+ begin
79
+ get_ad_units_by_statement()
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,93 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example gets all ad units. To create ad units, run create_ad_units.rb.
22
+ #
23
+ # Tags: InventoryService.getAdUnitsByStatement
24
+
25
+ require 'dfp_api'
26
+
27
+ API_VERSION = :v201302
28
+ PAGE_SIZE = 500
29
+
30
+ def get_all_ad_units()
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 InventoryService.
39
+ inventory_service = dfp.service(:InventoryService, API_VERSION)
40
+
41
+ # Define initial values.
42
+ offset = 0
43
+ page = {}
44
+
45
+ begin
46
+ # Create a statement to get one page with current offset.
47
+ statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
48
+
49
+ # Get ad units by statement.
50
+ page = inventory_service.get_ad_units_by_statement(statement)
51
+
52
+ if page[:results]
53
+ # Increase query offset by page size.
54
+ offset += PAGE_SIZE
55
+
56
+ # Get the start index for printout.
57
+ start_index = page[:start_index]
58
+
59
+ # Print details about each ad unit in results.
60
+ page[:results].each_with_index do |ad_unit, index|
61
+ puts "%d) Ad unit ID: %d, name: %s, status: %s." %
62
+ [index + start_index, ad_unit[:id],
63
+ ad_unit[:name], ad_unit[:status]]
64
+ end
65
+ end
66
+ end while offset < page[:total_result_set_size]
67
+
68
+ # Print a footer.
69
+ if page.include?(:total_result_set_size)
70
+ puts "Total number of ad units: %d" % page[:total_result_set_size]
71
+ end
72
+ end
73
+
74
+ if __FILE__ == $0
75
+ begin
76
+ get_all_ad_units()
77
+
78
+ # HTTP errors.
79
+ rescue AdsCommon::Errors::HttpError => e
80
+ puts "HTTP Error: %s" % e
81
+
82
+ # API errors.
83
+ rescue DfpApi::Errors::ApiException => e
84
+ puts "Message: %s" % e.message
85
+ puts 'Errors:'
86
+ e.errors.each_with_index do |error, index|
87
+ puts "\tError [%d]:" % (index + 1)
88
+ error.each do |field, value|
89
+ puts "\t\t%s: %s" % [field, value]
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example updates an ad unit by enabling AdSense to the first 500. To
22
+ # determine which ad units exist, run get_all_ad_units.rb or
23
+ # get_inventory_tree.rb.
24
+ #
25
+ # Tags: InventoryService.getAdUnitsByStatement, InventoryService.updateAdUnits
26
+
27
+ require 'dfp_api'
28
+
29
+ API_VERSION = :v201302
30
+
31
+ def update_ad_units()
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 InventoryService.
40
+ inventory_service = dfp.service(:InventoryService, API_VERSION)
41
+
42
+ # Create a statement to get first 500 ad units.
43
+ statement = {:query => "LIMIT 500"}
44
+
45
+ # Get ad units by statement.
46
+ page = inventory_service.get_ad_units_by_statement(statement)
47
+
48
+ if page[:results]
49
+ ad_units = page[:results]
50
+
51
+ # Update each local ad unit object by enabling AdSense.
52
+ ad_units.each do |ad_unit|
53
+ ad_unit[:inherited_ad_sense_settings] =
54
+ {:value => {:ad_sense_enabled => true}}
55
+ # Workaround for issue #94.
56
+ ad_unit[:description] = "" if ad_unit[:description].nil?
57
+ end
58
+
59
+ # Update the ad units on the server.
60
+ return_ad_units = inventory_service.update_ad_units(ad_units)
61
+
62
+ if return_ad_units
63
+ return_ad_units.each do |ad_unit|
64
+ puts ("Ad unit with ID: %d, name: %s and status: %s was updated " +
65
+ "with AdSense enabled: %s") %
66
+ [ad_unit[:id], ad_unit[:name], ad_unit[:status],
67
+ ad_unit[:inherited_ad_sense_settings][:value][:ad_sense_enabled]]
68
+ end
69
+ else
70
+ raise 'No ad units were updated.'
71
+ end
72
+ else
73
+ puts 'No ad units found to update.'
74
+ end
75
+ end
76
+
77
+ if __FILE__ == $0
78
+ begin
79
+ update_ad_units()
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,83 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example creates new labels. To determine which labels exist, run
22
+ # get_all_labels.rb.
23
+ #
24
+ # This feature is only available to DFP premium solution networks.
25
+ #
26
+ # Tags: LabelService.createLabels
27
+
28
+ require 'dfp_api'
29
+
30
+ API_VERSION = :v201302
31
+ # Number of labels to create.
32
+ ITEM_COUNT = 5
33
+
34
+ def create_labels()
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 LabelService.
43
+ label_service = dfp.service(:LabelService, API_VERSION)
44
+
45
+ # Create an array to store local label objects.
46
+ labels = (1..ITEM_COUNT).map do |index|
47
+ {:name => "Label #%d" % index, :types => ['COMPETITIVE_EXCLUSION']}
48
+ end
49
+
50
+ # Create the labels on the server.
51
+ return_labels = label_service.create_labels(labels)
52
+
53
+ if return_labels
54
+ return_labels.each do |label|
55
+ puts "Label with ID: %d, name: '%s' and types: '%s' was created." %
56
+ [label[:id], label[:name], label[:types].join(', ')]
57
+ end
58
+ else
59
+ raise 'No labels were created.'
60
+ end
61
+
62
+ end
63
+
64
+ if __FILE__ == $0
65
+ begin
66
+ create_labels()
67
+
68
+ # HTTP errors.
69
+ rescue AdsCommon::Errors::HttpError => e
70
+ puts "HTTP Error: %s" % e
71
+
72
+ # API errors.
73
+ rescue DfpApi::Errors::ApiException => e
74
+ puts "Message: %s" % e.message
75
+ puts 'Errors:'
76
+ e.errors.each_with_index do |error, index|
77
+ puts "\tError [%d]:" % (index + 1)
78
+ error.each do |field, value|
79
+ puts "\t\t%s: %s" % [field, value]
80
+ end
81
+ end
82
+ end
83
+ end