google-dfp-api 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. data/ChangeLog +3 -0
  2. data/examples/v201101/company_service/create_companies.rb +3 -4
  3. data/examples/v201101/company_service/update_companies.rb +2 -2
  4. data/examples/v201101/creative_service/create_creatives.rb +8 -11
  5. data/examples/v201101/inventory_service/create_ad_units.rb +7 -10
  6. data/examples/v201101/inventory_service/update_ad_units.rb +1 -1
  7. data/examples/v201101/line_item_service/create_line_items.rb +2 -3
  8. data/examples/v201101/line_item_service/update_line_items.rb +1 -1
  9. data/examples/v201101/order_service/create_orders.rb +5 -6
  10. data/examples/v201101/order_service/update_orders.rb +1 -1
  11. data/examples/v201101/placement_service/create_placements.rb +1 -1
  12. data/examples/v201101/placement_service/update_placements.rb +2 -1
  13. data/examples/v201101/user_service/update_users.rb +1 -1
  14. data/examples/v201103/company_service/create_companies.rb +3 -4
  15. data/examples/v201103/company_service/update_companies.rb +2 -2
  16. data/examples/v201103/creative_service/create_creatives.rb +8 -11
  17. data/examples/v201103/inventory_service/create_ad_units.rb +7 -10
  18. data/examples/v201103/inventory_service/update_ad_units.rb +1 -1
  19. data/examples/v201103/line_item_service/create_line_items.rb +2 -3
  20. data/examples/v201103/line_item_service/update_line_items.rb +1 -1
  21. data/examples/v201103/order_service/create_orders.rb +5 -6
  22. data/examples/v201103/order_service/update_orders.rb +1 -1
  23. data/examples/v201103/placement_service/create_placements.rb +1 -1
  24. data/examples/v201103/placement_service/update_placements.rb +2 -1
  25. data/examples/v201103/user_service/update_users.rb +1 -1
  26. data/examples/v201104/company_service/create_companies.rb +3 -4
  27. data/examples/v201104/company_service/update_companies.rb +2 -2
  28. data/examples/v201104/creative_service/create_creatives.rb +8 -11
  29. data/examples/v201104/inventory_service/create_ad_units.rb +7 -10
  30. data/examples/v201104/inventory_service/update_ad_units.rb +1 -1
  31. data/examples/v201104/line_item_service/create_line_items.rb +2 -3
  32. data/examples/v201104/line_item_service/update_line_items.rb +1 -1
  33. data/examples/v201104/order_service/create_orders.rb +5 -6
  34. data/examples/v201104/order_service/update_orders.rb +1 -1
  35. data/examples/v201104/placement_service/create_placements.rb +1 -1
  36. data/examples/v201104/placement_service/update_placements.rb +2 -1
  37. data/examples/v201104/user_service/update_users.rb +1 -1
  38. data/examples/v201107/common/error_handling.rb +76 -0
  39. data/examples/v201107/common/oauth_handling.rb +128 -0
  40. data/examples/v201107/company_service/create_companies.rb +81 -0
  41. data/examples/v201107/company_service/get_all_companies.rb +92 -0
  42. data/examples/v201107/company_service/get_companies_by_statement.rb +88 -0
  43. data/examples/v201107/company_service/get_company.rb +72 -0
  44. data/examples/v201107/company_service/update_companies.rb +95 -0
  45. data/examples/v201107/creative_service/copy_image_creatives.rb +117 -0
  46. data/examples/v201107/creative_service/create_creatives.rb +106 -0
  47. data/examples/v201107/creative_service/get_all_creatives.rb +93 -0
  48. data/examples/v201107/creative_service/get_creative.rb +72 -0
  49. data/examples/v201107/creative_service/get_creatives_by_statement.rb +87 -0
  50. data/examples/v201107/creative_service/update_creatives.rb +98 -0
  51. data/examples/v201107/custom_targeting_service/create_custom_targeting_keys_and_values.rb +118 -0
  52. data/examples/v201107/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
  53. data/examples/v201107/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
  54. data/examples/v201107/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
  55. data/examples/v201107/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
  56. data/examples/v201107/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
  57. data/examples/v201107/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
  58. data/examples/v201107/custom_targeting_service/update_custom_targeting_values.rb +106 -0
  59. data/examples/v201107/forecast_service/get_forecast.rb +103 -0
  60. data/examples/v201107/forecast_service/get_forecast_by_id.rb +80 -0
  61. data/examples/v201107/inventory_service/create_ad_units.rb +95 -0
  62. data/examples/v201107/inventory_service/deactivate_ad_units.rb +119 -0
  63. data/examples/v201107/inventory_service/get_ad_unit.rb +72 -0
  64. data/examples/v201107/inventory_service/get_ad_unit_sizes.rb +73 -0
  65. data/examples/v201107/inventory_service/get_ad_units_by_statement.rb +96 -0
  66. data/examples/v201107/inventory_service/get_all_ad_units.rb +93 -0
  67. data/examples/v201107/inventory_service/update_ad_units.rb +94 -0
  68. data/examples/v201107/label_service/create_labels.rb +83 -0
  69. data/examples/v201107/label_service/deactivate_labels.rb +118 -0
  70. data/examples/v201107/label_service/get_all_labels.rb +94 -0
  71. data/examples/v201107/label_service/get_label.rb +76 -0
  72. data/examples/v201107/label_service/get_labels_by_statement.rb +91 -0
  73. data/examples/v201107/label_service/update_labels.rb +104 -0
  74. data/examples/v201107/line_item_creative_association_service/create_licas.rb +94 -0
  75. data/examples/v201107/line_item_creative_association_service/deactivate_licas.rb +127 -0
  76. data/examples/v201107/line_item_creative_association_service/get_all_licas.rb +95 -0
  77. data/examples/v201107/line_item_creative_association_service/get_lica.rb +77 -0
  78. data/examples/v201107/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
  79. data/examples/v201107/line_item_creative_association_service/update_licas.rb +92 -0
  80. data/examples/v201107/line_item_service/activate_line_items.rb +131 -0
  81. data/examples/v201107/line_item_service/create_line_items.rb +167 -0
  82. data/examples/v201107/line_item_service/get_all_line_items.rb +94 -0
  83. data/examples/v201107/line_item_service/get_line_item.rb +74 -0
  84. data/examples/v201107/line_item_service/get_line_items_by_statement.rb +89 -0
  85. data/examples/v201107/line_item_service/target_custom_criteria.rb +129 -0
  86. data/examples/v201107/line_item_service/update_line_items.rb +110 -0
  87. data/examples/v201107/network_service/get_all_networks.rb +74 -0
  88. data/examples/v201107/network_service/get_current_network.rb +66 -0
  89. data/examples/v201107/order_service/approve_orders.rb +116 -0
  90. data/examples/v201107/order_service/create_orders.rb +92 -0
  91. data/examples/v201107/order_service/get_all_orders.rb +93 -0
  92. data/examples/v201107/order_service/get_order.rb +74 -0
  93. data/examples/v201107/order_service/get_orders_by_statement.rb +90 -0
  94. data/examples/v201107/order_service/update_orders.rb +95 -0
  95. data/examples/v201107/placement_service/create_placements.rb +128 -0
  96. data/examples/v201107/placement_service/deactivate_placements.rb +118 -0
  97. data/examples/v201107/placement_service/get_all_placements.rb +93 -0
  98. data/examples/v201107/placement_service/get_placement.rb +74 -0
  99. data/examples/v201107/placement_service/get_placements_by_statement.rb +86 -0
  100. data/examples/v201107/placement_service/update_placements.rb +97 -0
  101. data/examples/v201107/publisher_query_language_service/get_all_bandwidth_groups.rb +85 -0
  102. data/examples/v201107/publisher_query_language_service/get_all_browser_languages.rb +85 -0
  103. data/examples/v201107/publisher_query_language_service/get_all_browsers.rb +85 -0
  104. data/examples/v201107/publisher_query_language_service/get_all_cities.rb +85 -0
  105. data/examples/v201107/publisher_query_language_service/get_all_countries.rb +85 -0
  106. data/examples/v201107/publisher_query_language_service/get_all_metros.rb +85 -0
  107. data/examples/v201107/publisher_query_language_service/get_all_operating_systems.rb +85 -0
  108. data/examples/v201107/publisher_query_language_service/get_all_regions.rb +85 -0
  109. data/examples/v201107/report_service/download_report.rb +81 -0
  110. data/examples/v201107/report_service/run_delivery_report.rb +89 -0
  111. data/examples/v201107/report_service/run_inventory_report.rb +90 -0
  112. data/examples/v201107/report_service/run_sales_report.rb +89 -0
  113. data/examples/v201107/user_service/create_users.rb +89 -0
  114. data/examples/v201107/user_service/deactivate_users.rb +99 -0
  115. data/examples/v201107/user_service/get_all_roles.rb +73 -0
  116. data/examples/v201107/user_service/get_all_users.rb +92 -0
  117. data/examples/v201107/user_service/get_current_user.rb +66 -0
  118. data/examples/v201107/user_service/get_user.rb +73 -0
  119. data/examples/v201107/user_service/get_users_by_statement.rb +79 -0
  120. data/examples/v201107/user_service/update_users.rb +89 -0
  121. data/lib/dfp_api/api_config.rb +16 -7
  122. data/lib/dfp_api/v201107/company_service.rb +52 -0
  123. data/lib/dfp_api/v201107/company_service_registry.rb +42 -0
  124. data/lib/dfp_api/v201107/creative_service.rb +52 -0
  125. data/lib/dfp_api/v201107/creative_service_registry.rb +42 -0
  126. data/lib/dfp_api/v201107/custom_targeting_service.rb +60 -0
  127. data/lib/dfp_api/v201107/custom_targeting_service_registry.rb +42 -0
  128. data/lib/dfp_api/v201107/forecast_service.rb +36 -0
  129. data/lib/dfp_api/v201107/forecast_service_registry.rb +42 -0
  130. data/lib/dfp_api/v201107/inventory_service.rb +60 -0
  131. data/lib/dfp_api/v201107/inventory_service_registry.rb +42 -0
  132. data/lib/dfp_api/v201107/label_service.rb +56 -0
  133. data/lib/dfp_api/v201107/label_service_registry.rb +42 -0
  134. data/lib/dfp_api/v201107/line_item_creative_association_service.rb +56 -0
  135. data/lib/dfp_api/v201107/line_item_creative_association_service_registry.rb +42 -0
  136. data/lib/dfp_api/v201107/line_item_service.rb +56 -0
  137. data/lib/dfp_api/v201107/line_item_service_registry.rb +42 -0
  138. data/lib/dfp_api/v201107/network_service.rb +40 -0
  139. data/lib/dfp_api/v201107/network_service_registry.rb +42 -0
  140. data/lib/dfp_api/v201107/order_service.rb +56 -0
  141. data/lib/dfp_api/v201107/order_service_registry.rb +42 -0
  142. data/lib/dfp_api/v201107/placement_service.rb +56 -0
  143. data/lib/dfp_api/v201107/placement_service_registry.rb +42 -0
  144. data/lib/dfp_api/v201107/publisher_query_language_service.rb +32 -0
  145. data/lib/dfp_api/v201107/publisher_query_language_service_registry.rb +42 -0
  146. data/lib/dfp_api/v201107/report_service.rb +40 -0
  147. data/lib/dfp_api/v201107/report_service_registry.rb +42 -0
  148. data/lib/dfp_api/v201107/user_service.rb +64 -0
  149. data/lib/dfp_api/v201107/user_service_registry.rb +42 -0
  150. metadata +115 -4
@@ -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 creates new ad units under a the effective root ad unit. To
21
+ # determine which ad units exist, run get_inventory_tree.rb or
22
+ # get_all_ad_units.rb.
23
+ #
24
+ # Tags: InventoryService.createAdUnits
25
+
26
+ require 'rubygems'
27
+ require 'dfp_api'
28
+
29
+ API_VERSION = :v201107
30
+ # Number of ad units to create.
31
+ ITEM_COUNT = 5
32
+
33
+ def create_ad_units()
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 InventoryService.
42
+ inventory_service = dfp.service(:InventoryService, API_VERSION)
43
+
44
+ # Get the NetworkService.
45
+ network_service = dfp.service(:NetworkService, API_VERSION)
46
+
47
+ # Get the effective root ad unit ID of the network.
48
+ effective_root_ad_unit_id =
49
+ network_service.get_current_network[:effective_root_ad_unit_id]
50
+
51
+ puts "Using effective root ad unit: %d" % effective_root_ad_unit_id
52
+
53
+ # Create an array to store local ad unit objects.
54
+ ad_units = (1..ITEM_COUNT).map do |index|
55
+ {:name => "Ad_Unit_%d" % index,
56
+ :parent_id => effective_root_ad_unit_id,
57
+ :description => 'Ad unit description.',
58
+ :target_window => 'BLANK',
59
+ # Set the size of possible creatives that can match this ad unit.
60
+ :sizes => [{:width => 300, :height => 250, :is_aspect_ratio => false}]}
61
+ end
62
+
63
+ # Create the ad units on the server.
64
+ return_ad_units = inventory_service.create_ad_units(ad_units)
65
+
66
+ if return_ad_units
67
+ return_ad_units.each do |ad_unit|
68
+ puts "Ad unit with ID: %d, name: %s and status: %s was created." %
69
+ [ad_unit[:id], ad_unit[:name], ad_unit[:status]]
70
+ end
71
+ else
72
+ raise 'No ad units were created.'
73
+ end
74
+ end
75
+
76
+ if __FILE__ == $0
77
+ begin
78
+ create_ad_units()
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,119 @@
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 active ad units. To determine which ad units
21
+ # exist, run get_all_ad_units.rb or get_inventory_tree.rb.
22
+ #
23
+ # Tags: InventoryService.getLineItemsByStatement,
24
+ # InventoryService.performAdUnitAction
25
+
26
+ require 'rubygems'
27
+ require 'dfp_api'
28
+
29
+ API_VERSION = :v201107
30
+ PAGE_SIZE = 500
31
+
32
+ def deactivate_ad_units()
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 InventoryService.
41
+ inventory_service = dfp.service(:InventoryService, API_VERSION)
42
+
43
+ # Create statement text to select active ad units.
44
+ statement_text = 'WHERE status = :status'
45
+ statement = {
46
+ :values => [
47
+ {:key => 'status',
48
+ :value => {:value => 'ACTIVE', :xsi_type => 'TextValue'}}
49
+ ]
50
+ }
51
+
52
+ # Define initial values.
53
+ offset = 0
54
+ page = {}
55
+ ad_unit_ids = []
56
+
57
+ begin
58
+ # Create a statement to get one page with current offset.
59
+ statement[:query] = statement_text +
60
+ " LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]
61
+
62
+ # Get ad units by statement.
63
+ page = inventory_service.get_ad_units_by_statement(statement)
64
+
65
+ if page[:results]
66
+ # Increase query offset by page size.
67
+ offset += PAGE_SIZE
68
+
69
+ page[:results].each do |ad_unit|
70
+ puts ("%d) Ad unit with ID: %d, status: %s and name: %s will be " +
71
+ "deactivated.") % [ad_unit_ids.size, ad_unit[:id],
72
+ ad_unit[:status], ad_unit[:name]]
73
+ ad_unit_ids << ad_unit[:id]
74
+ end
75
+ end
76
+ end while offset < page[:total_result_set_size]
77
+
78
+ puts "Number of ad units to be deactivated: %d" % ad_unit_ids.size
79
+
80
+ if !ad_unit_ids.empty?
81
+ # Modify statement for action. Note, the values are still present.
82
+ statement[:query] = statement_text + " AND id IN (%s)" %
83
+ ad_unit_ids.join(', ')
84
+
85
+ # Perform action.
86
+ result = inventory_service.perform_ad_unit_action(
87
+ {:xsi_type => 'DeactivateAdUnits'}, statement)
88
+
89
+ # Display results.
90
+ if result and result[:num_changes] > 0
91
+ puts "Number of ad units deactivated: %d" % result[:num_changes]
92
+ else
93
+ puts 'No ad units were deactivated.'
94
+ end
95
+ else
96
+ puts 'No ad units found to deactivate.'
97
+ end
98
+ end
99
+
100
+ if __FILE__ == $0
101
+ begin
102
+ deactivate_ad_units()
103
+
104
+ # HTTP errors.
105
+ rescue AdsCommon::Errors::HttpError => e
106
+ puts "HTTP Error: %s" % e
107
+
108
+ # API errors.
109
+ rescue DfpApi::Errors::ApiException => e
110
+ puts "Message: %s" % e.message
111
+ puts 'Errors:'
112
+ e.errors.each_with_index do |error, index|
113
+ puts "\tError [%d]:" % (index + 1)
114
+ error.each do |field, value|
115
+ puts "\t\t%s: %s" % [field, value]
116
+ end
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,72 @@
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 an ad unit by its ID. To determine which ad units
21
+ # exist, run get_inventory_tree.rb or get_all_ad_units.rb.
22
+ #
23
+ # Tags: InventoryService.getAdUnit
24
+
25
+ require 'rubygems'
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201107
29
+
30
+ def get_ad_unit()
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
+ # Set the ID of the ad unit to get.
42
+ ad_unit_id = 'INSERT_AD_UNIT_ID_HERE'.to_i
43
+
44
+ # Get the ad unit.
45
+ ad_unit = inventory_service.get_ad_unit(ad_unit_id)
46
+
47
+ if ad_unit
48
+ puts "Ad unit with ID: %d, name: %s and status: %s was found." %
49
+ [ad_unit[:id], ad_unit[:name], ad_unit[:status]]
50
+ end
51
+ end
52
+
53
+ if __FILE__ == $0
54
+ begin
55
+ get_ad_unit()
56
+
57
+ # HTTP errors.
58
+ rescue AdsCommon::Errors::HttpError => e
59
+ puts "HTTP Error: %s" % e
60
+
61
+ # API errors.
62
+ rescue DfpApi::Errors::ApiException => e
63
+ puts "Message: %s" % e.message
64
+ puts 'Errors:'
65
+ e.errors.each_with_index do |error, index|
66
+ puts "\tError [%d]:" % (index + 1)
67
+ error.each do |field, value|
68
+ puts "\t\t%s: %s" % [field, value]
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,73 @@
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 ad unit sizes in the network.
21
+ #
22
+ # Tags: InventoryService.getAdUnitSizes
23
+
24
+ require 'rubygems'
25
+ require 'dfp_api'
26
+
27
+ API_VERSION = :v201107
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
+ # Get all ad unit sizes.
41
+ ad_unit_sizes = inventory_service.get_ad_unit_sizes()
42
+
43
+ if ad_unit_sizes
44
+ # Print details about each ad unit in results.
45
+ ad_unit_sizes.each_with_index do |ad_unit_size, index|
46
+ puts "%d) Ad unit size %dx%d was found." % [index,
47
+ ad_unit_size[:size][:width], ad_unit_size[:size][:height]]
48
+ end
49
+ else
50
+ puts 'No ad unit sizes found.'
51
+ end
52
+ end
53
+
54
+ if __FILE__ == $0
55
+ begin
56
+ get_all_ad_unit_sizes()
57
+
58
+ # HTTP errors.
59
+ rescue AdsCommon::Errors::HttpError => e
60
+ puts "HTTP Error: %s" % e
61
+
62
+ # API errors.
63
+ rescue DfpApi::Errors::ApiException => e
64
+ puts "Message: %s" % e.message
65
+ puts 'Errors:'
66
+ e.errors.each_with_index do |error, index|
67
+ puts "\tError [%d]:" % (index + 1)
68
+ error.each do |field, value|
69
+ puts "\t\t%s: %s" % [field, value]
70
+ end
71
+ end
72
+ end
73
+ 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 gets first 500 children below the effective root ad unit. To
21
+ # create ad units, run create_ad_units.rb.
22
+ #
23
+ # Tags: InventoryService.getAdUnitsByStatement, NetworkService.getCurrentNetwork
24
+
25
+ require 'rubygems'
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201107
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