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.
- data/ChangeLog +7 -1
- data/README +11 -11
- data/Rakefile +13 -11
- data/examples/v201103/common/error_handling.rb +76 -0
- data/examples/v201103/company_service/create_companies.rb +82 -0
- data/examples/v201103/company_service/get_all_companies.rb +92 -0
- data/examples/v201103/company_service/get_companies_by_statement.rb +88 -0
- data/examples/v201103/company_service/get_company.rb +72 -0
- data/examples/v201103/company_service/update_companies.rb +95 -0
- data/examples/v201103/creative_service/copy_image_creatives.rb +117 -0
- data/examples/v201103/creative_service/create_creatives.rb +109 -0
- data/examples/v201103/creative_service/get_all_creatives.rb +93 -0
- data/examples/v201103/creative_service/get_creative.rb +72 -0
- data/examples/v201103/creative_service/get_creatives_by_statement.rb +87 -0
- data/examples/v201103/creative_service/update_creatives.rb +98 -0
- data/examples/v201103/custom_targeting_service/create_custom_targeting_keys_and_values.rb +118 -0
- data/examples/v201103/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
- data/examples/v201103/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
- data/examples/v201103/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
- data/examples/v201103/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
- data/examples/v201103/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
- data/examples/v201103/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
- data/examples/v201103/custom_targeting_service/update_custom_targeting_values.rb +106 -0
- data/examples/v201103/forecast_service/get_forecast.rb +103 -0
- data/examples/v201103/forecast_service/get_forecast_by_id.rb +80 -0
- data/examples/v201103/inventory_service/create_ad_units.rb +98 -0
- data/examples/v201103/inventory_service/deactivate_ad_units.rb +119 -0
- data/examples/v201103/inventory_service/get_ad_unit.rb +72 -0
- data/examples/v201103/inventory_service/get_ad_units_by_statement.rb +96 -0
- data/examples/v201103/inventory_service/get_all_ad_units.rb +93 -0
- data/examples/v201103/inventory_service/update_ad_units.rb +94 -0
- data/examples/v201103/line_item_creative_association_service/create_licas.rb +94 -0
- data/examples/v201103/line_item_creative_association_service/deactivate_licas.rb +127 -0
- data/examples/v201103/line_item_creative_association_service/get_all_licas.rb +95 -0
- data/examples/v201103/line_item_creative_association_service/get_lica.rb +77 -0
- data/examples/v201103/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
- data/examples/v201103/line_item_creative_association_service/update_licas.rb +92 -0
- data/examples/v201103/line_item_service/activate_line_items.rb +131 -0
- data/examples/v201103/line_item_service/create_line_items.rb +165 -0
- data/examples/v201103/line_item_service/get_all_line_items.rb +94 -0
- data/examples/v201103/line_item_service/get_line_item.rb +74 -0
- data/examples/v201103/line_item_service/get_line_items_by_statement.rb +89 -0
- data/examples/v201103/line_item_service/target_custom_criteria.rb +135 -0
- data/examples/v201103/line_item_service/update_line_items.rb +110 -0
- data/examples/v201103/network_service/get_all_networks.rb +74 -0
- data/examples/v201103/network_service/get_current_network.rb +66 -0
- data/examples/v201103/order_service/approve_orders.rb +116 -0
- data/examples/v201103/order_service/create_orders.rb +93 -0
- data/examples/v201103/order_service/get_all_orders.rb +93 -0
- data/examples/v201103/order_service/get_order.rb +74 -0
- data/examples/v201103/order_service/get_orders_by_statement.rb +90 -0
- data/examples/v201103/order_service/update_orders.rb +95 -0
- data/examples/v201103/placement_service/create_placements.rb +128 -0
- data/examples/v201103/placement_service/deactivate_placements.rb +118 -0
- data/examples/v201103/placement_service/get_all_placements.rb +93 -0
- data/examples/v201103/placement_service/get_placement.rb +74 -0
- data/examples/v201103/placement_service/get_placements_by_statement.rb +86 -0
- data/examples/v201103/placement_service/update_placements.rb +96 -0
- data/examples/v201103/publisher_query_language_service/get_all_cities.rb +85 -0
- data/examples/v201103/publisher_query_language_service/get_all_countries.rb +85 -0
- data/examples/v201103/publisher_query_language_service/get_all_metros.rb +85 -0
- data/examples/v201103/publisher_query_language_service/get_all_regions.rb +85 -0
- data/examples/v201103/report_service/download_report.rb +81 -0
- data/examples/v201103/report_service/run_delivery_report.rb +89 -0
- data/examples/v201103/report_service/run_inventory_report.rb +90 -0
- data/examples/v201103/report_service/run_sales_report.rb +89 -0
- data/examples/v201103/user_service/create_users.rb +89 -0
- data/examples/v201103/user_service/deactivate_users.rb +99 -0
- data/examples/v201103/user_service/get_all_roles.rb +73 -0
- data/examples/v201103/user_service/get_all_users.rb +92 -0
- data/examples/v201103/user_service/get_user.rb +73 -0
- data/examples/v201103/user_service/get_users_by_statement.rb +79 -0
- data/examples/v201103/user_service/update_users.rb +89 -0
- data/examples/v201104/common/error_handling.rb +76 -0
- data/examples/v201104/company_service/create_companies.rb +82 -0
- data/examples/v201104/company_service/get_all_companies.rb +92 -0
- data/examples/v201104/company_service/get_companies_by_statement.rb +88 -0
- data/examples/v201104/company_service/get_company.rb +72 -0
- data/examples/v201104/company_service/update_companies.rb +95 -0
- data/examples/v201104/creative_service/copy_image_creatives.rb +117 -0
- data/examples/v201104/creative_service/create_creatives.rb +109 -0
- data/examples/v201104/creative_service/get_all_creatives.rb +93 -0
- data/examples/v201104/creative_service/get_creative.rb +72 -0
- data/examples/v201104/creative_service/get_creatives_by_statement.rb +87 -0
- data/examples/v201104/creative_service/update_creatives.rb +98 -0
- data/examples/v201104/custom_targeting_service/create_custom_targeting_keys_and_values.rb +118 -0
- data/examples/v201104/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
- data/examples/v201104/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
- data/examples/v201104/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
- data/examples/v201104/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
- data/examples/v201104/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
- data/examples/v201104/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
- data/examples/v201104/custom_targeting_service/update_custom_targeting_values.rb +106 -0
- data/examples/v201104/forecast_service/get_forecast.rb +103 -0
- data/examples/v201104/forecast_service/get_forecast_by_id.rb +80 -0
- data/examples/v201104/inventory_service/create_ad_units.rb +98 -0
- data/examples/v201104/inventory_service/deactivate_ad_units.rb +119 -0
- data/examples/v201104/inventory_service/get_ad_unit.rb +72 -0
- data/examples/v201104/inventory_service/get_ad_units_by_statement.rb +96 -0
- data/examples/v201104/inventory_service/get_all_ad_units.rb +93 -0
- data/examples/v201104/inventory_service/update_ad_units.rb +94 -0
- data/examples/v201104/line_item_creative_association_service/create_licas.rb +94 -0
- data/examples/v201104/line_item_creative_association_service/deactivate_licas.rb +127 -0
- data/examples/v201104/line_item_creative_association_service/get_all_licas.rb +95 -0
- data/examples/v201104/line_item_creative_association_service/get_lica.rb +77 -0
- data/examples/v201104/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
- data/examples/v201104/line_item_creative_association_service/update_licas.rb +92 -0
- data/examples/v201104/line_item_service/activate_line_items.rb +131 -0
- data/examples/v201104/line_item_service/create_line_items.rb +157 -0
- data/examples/v201104/line_item_service/get_all_line_items.rb +94 -0
- data/examples/v201104/line_item_service/get_line_item.rb +74 -0
- data/examples/v201104/line_item_service/get_line_items_by_statement.rb +89 -0
- data/examples/v201104/line_item_service/target_custom_criteria.rb +129 -0
- data/examples/v201104/line_item_service/update_line_items.rb +110 -0
- data/examples/v201104/network_service/get_all_networks.rb +74 -0
- data/examples/v201104/network_service/get_current_network.rb +66 -0
- data/examples/v201104/order_service/approve_orders.rb +116 -0
- data/examples/v201104/order_service/create_orders.rb +93 -0
- data/examples/v201104/order_service/get_all_orders.rb +93 -0
- data/examples/v201104/order_service/get_order.rb +74 -0
- data/examples/v201104/order_service/get_orders_by_statement.rb +90 -0
- data/examples/v201104/order_service/update_orders.rb +95 -0
- data/examples/v201104/placement_service/create_placements.rb +128 -0
- data/examples/v201104/placement_service/deactivate_placements.rb +118 -0
- data/examples/v201104/placement_service/get_all_placements.rb +93 -0
- data/examples/v201104/placement_service/get_placement.rb +74 -0
- data/examples/v201104/placement_service/get_placements_by_statement.rb +86 -0
- data/examples/v201104/placement_service/update_placements.rb +96 -0
- data/examples/v201104/publisher_query_language_service/get_all_cities.rb +85 -0
- data/examples/v201104/publisher_query_language_service/get_all_countries.rb +85 -0
- data/examples/v201104/publisher_query_language_service/get_all_metros.rb +85 -0
- data/examples/v201104/publisher_query_language_service/get_all_regions.rb +85 -0
- data/examples/v201104/report_service/download_report.rb +81 -0
- data/examples/v201104/report_service/run_delivery_report.rb +89 -0
- data/examples/v201104/report_service/run_inventory_report.rb +90 -0
- data/examples/v201104/report_service/run_sales_report.rb +89 -0
- data/examples/v201104/user_service/create_users.rb +89 -0
- data/examples/v201104/user_service/deactivate_users.rb +99 -0
- data/examples/v201104/user_service/get_all_roles.rb +73 -0
- data/examples/v201104/user_service/get_all_users.rb +92 -0
- data/examples/v201104/user_service/get_user.rb +73 -0
- data/examples/v201104/user_service/get_users_by_statement.rb +79 -0
- data/examples/v201104/user_service/update_users.rb +89 -0
- data/lib/dfp_api.rb +32 -45
- data/lib/dfp_api/api_config.rb +30 -7
- data/lib/dfp_api/v201101/company_service.rb +9 -9
- data/lib/dfp_api/v201101/company_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/creative_service.rb +9 -9
- data/lib/dfp_api/v201101/creative_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/custom_targeting_service.rb +9 -9
- data/lib/dfp_api/v201101/custom_targeting_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/forecast_service.rb +5 -5
- data/lib/dfp_api/v201101/forecast_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/inventory_service.rb +13 -13
- data/lib/dfp_api/v201101/inventory_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/line_item_creative_association_service.rb +5 -5
- data/lib/dfp_api/v201101/line_item_creative_association_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/line_item_service.rb +13 -13
- data/lib/dfp_api/v201101/line_item_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/network_service.rb +5 -5
- data/lib/dfp_api/v201101/network_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/order_service.rb +13 -13
- data/lib/dfp_api/v201101/order_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/placement_service.rb +9 -9
- data/lib/dfp_api/v201101/placement_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/publisher_query_language_service.rb +1 -1
- data/lib/dfp_api/v201101/publisher_query_language_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/report_service.rb +5 -5
- data/lib/dfp_api/v201101/report_service_registry.rb +3 -3
- data/lib/dfp_api/v201101/user_service.rb +17 -17
- data/lib/dfp_api/v201101/user_service_registry.rb +3 -3
- data/lib/dfp_api/v201103/company_service.rb +52 -0
- data/lib/dfp_api/v201103/company_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/creative_service.rb +52 -0
- data/lib/dfp_api/v201103/creative_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/custom_targeting_service.rb +60 -0
- data/lib/dfp_api/v201103/custom_targeting_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/forecast_service.rb +36 -0
- data/lib/dfp_api/v201103/forecast_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/inventory_service.rb +56 -0
- data/lib/dfp_api/v201103/inventory_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/line_item_creative_association_service.rb +56 -0
- data/lib/dfp_api/v201103/line_item_creative_association_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/line_item_service.rb +56 -0
- data/lib/dfp_api/v201103/line_item_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/network_service.rb +40 -0
- data/lib/dfp_api/v201103/network_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/order_service.rb +56 -0
- data/lib/dfp_api/v201103/order_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/placement_service.rb +56 -0
- data/lib/dfp_api/v201103/placement_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/publisher_query_language_service.rb +32 -0
- data/lib/dfp_api/v201103/publisher_query_language_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/report_service.rb +40 -0
- data/lib/dfp_api/v201103/report_service_registry.rb +37 -0
- data/lib/dfp_api/v201103/user_service.rb +60 -0
- data/lib/dfp_api/v201103/user_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/company_service.rb +52 -0
- data/lib/dfp_api/v201104/company_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/creative_service.rb +52 -0
- data/lib/dfp_api/v201104/creative_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/custom_targeting_service.rb +60 -0
- data/lib/dfp_api/v201104/custom_targeting_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/forecast_service.rb +36 -0
- data/lib/dfp_api/v201104/forecast_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/inventory_service.rb +56 -0
- data/lib/dfp_api/v201104/inventory_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/line_item_creative_association_service.rb +56 -0
- data/lib/dfp_api/v201104/line_item_creative_association_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/line_item_service.rb +56 -0
- data/lib/dfp_api/v201104/line_item_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/network_service.rb +40 -0
- data/lib/dfp_api/v201104/network_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/order_service.rb +56 -0
- data/lib/dfp_api/v201104/order_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/placement_service.rb +56 -0
- data/lib/dfp_api/v201104/placement_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/publisher_query_language_service.rb +32 -0
- data/lib/dfp_api/v201104/publisher_query_language_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/report_service.rb +40 -0
- data/lib/dfp_api/v201104/report_service_registry.rb +37 -0
- data/lib/dfp_api/v201104/user_service.rb +60 -0
- data/lib/dfp_api/v201104/user_service_registry.rb +37 -0
- data/test/bugs/test_issue_00000016.rb +154 -0
- data/test/dfp_api/test_dfp_api.rb +64 -0
- metadata +248 -53
|
@@ -0,0 +1,66 @@
|
|
|
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 the current network that you can make requests against.
|
|
21
|
+
#
|
|
22
|
+
# Tags: NetworkService.getCurrentNetwork
|
|
23
|
+
|
|
24
|
+
require 'rubygems'
|
|
25
|
+
require 'dfp_api'
|
|
26
|
+
|
|
27
|
+
API_VERSION = :v201103
|
|
28
|
+
|
|
29
|
+
def get_current_network()
|
|
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 NetworkService.
|
|
38
|
+
network_service = dfp.service(:NetworkService, API_VERSION)
|
|
39
|
+
|
|
40
|
+
# Get the current network.
|
|
41
|
+
network = network_service.get_current_network()
|
|
42
|
+
|
|
43
|
+
puts "Current network has network code %d and display name %s." %
|
|
44
|
+
[network[:network_code], network[:display_name]]
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
if __FILE__ == $0
|
|
48
|
+
begin
|
|
49
|
+
get_current_network()
|
|
50
|
+
|
|
51
|
+
# HTTP errors.
|
|
52
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
53
|
+
puts "HTTP Error: %s" % e
|
|
54
|
+
|
|
55
|
+
# API errors.
|
|
56
|
+
rescue DfpApi::Errors::ApiException => e
|
|
57
|
+
puts "Message: %s" % e.message
|
|
58
|
+
puts 'Errors:'
|
|
59
|
+
e.errors.each_with_index do |error, index|
|
|
60
|
+
puts "\tError [%d]:" % (index + 1)
|
|
61
|
+
error.each do |field, value|
|
|
62
|
+
puts "\t\t%s: %s" % [field, value]
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,116 @@
|
|
|
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 approves and overbooks all draft orders. To determine which
|
|
21
|
+
# orders exist, run get_all_orders.rb.
|
|
22
|
+
#
|
|
23
|
+
# Tags: OrderService.getOrdersByStatement,
|
|
24
|
+
# OrderService.performOrderAction
|
|
25
|
+
|
|
26
|
+
require 'rubygems'
|
|
27
|
+
require 'dfp_api'
|
|
28
|
+
|
|
29
|
+
API_VERSION = :v201103
|
|
30
|
+
PAGE_SIZE = 500
|
|
31
|
+
|
|
32
|
+
def approve_orders()
|
|
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 OrderService.
|
|
41
|
+
order_service = dfp.service(:OrderService, API_VERSION)
|
|
42
|
+
|
|
43
|
+
# Create statement text to select all draft orders.
|
|
44
|
+
statement_text = "WHERE status IN ('DRAFT', 'PENDING_APPROVAL')"
|
|
45
|
+
|
|
46
|
+
# Define initial values.
|
|
47
|
+
offset = 0
|
|
48
|
+
page = Hash.new
|
|
49
|
+
order_ids = Array.new
|
|
50
|
+
|
|
51
|
+
begin
|
|
52
|
+
# Create a statement to get one page with current offset.
|
|
53
|
+
statement = {
|
|
54
|
+
:query => statement_text + " LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
# Get orders by statement.
|
|
58
|
+
page = order_service.get_orders_by_statement(statement)
|
|
59
|
+
|
|
60
|
+
if page[:results]
|
|
61
|
+
# Increase query offset by page size.
|
|
62
|
+
offset += PAGE_SIZE
|
|
63
|
+
|
|
64
|
+
page[:results].each do |order|
|
|
65
|
+
# Archived orders cannot be approved.
|
|
66
|
+
if !order[:is_archived]
|
|
67
|
+
puts ("%d) Order ID: %d, status: %s and name: %s will be " +
|
|
68
|
+
"approved.") % [order_ids.size, order[:id], order[:status],
|
|
69
|
+
order[:name]]
|
|
70
|
+
order_ids << order[:id]
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end while offset < page[:total_result_set_size]
|
|
75
|
+
|
|
76
|
+
puts "Number of orders to be approved: %d" % order_ids.size
|
|
77
|
+
|
|
78
|
+
if !order_ids.empty?
|
|
79
|
+
# Create statement for action.
|
|
80
|
+
statement = {:query => "WHERE id IN (%s)" % order_ids.join(', ')}
|
|
81
|
+
|
|
82
|
+
# Perform action.
|
|
83
|
+
result = order_service.perform_order_action(
|
|
84
|
+
{:xsi_type => 'ApproveAndOverbookOrders'}, statement)
|
|
85
|
+
|
|
86
|
+
# Display results.
|
|
87
|
+
if result and result[:num_changes] > 0
|
|
88
|
+
puts "Number of orders approved: %d" % result[:num_changes]
|
|
89
|
+
else
|
|
90
|
+
puts 'No orders were approved.'
|
|
91
|
+
end
|
|
92
|
+
else
|
|
93
|
+
puts 'No order found to approve.'
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
if __FILE__ == $0
|
|
98
|
+
begin
|
|
99
|
+
approve_orders()
|
|
100
|
+
|
|
101
|
+
# HTTP errors.
|
|
102
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
103
|
+
puts "HTTP Error: %s" % e
|
|
104
|
+
|
|
105
|
+
# API errors.
|
|
106
|
+
rescue DfpApi::Errors::ApiException => e
|
|
107
|
+
puts "Message: %s" % e.message
|
|
108
|
+
puts 'Errors:'
|
|
109
|
+
e.errors.each_with_index do |error, index|
|
|
110
|
+
puts "\tError [%d]:" % (index + 1)
|
|
111
|
+
error.each do |field, value|
|
|
112
|
+
puts "\t\t%s: %s" % [field, value]
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
@@ -0,0 +1,93 @@
|
|
|
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 orders. To determine which orders exist, run
|
|
21
|
+
# get_all_orders.rb. To determine which companies are advertisers, run
|
|
22
|
+
# get_companies_by_statement.rb. To get salespeople and traffickers, run
|
|
23
|
+
# get_all_users.rb.
|
|
24
|
+
#
|
|
25
|
+
# Tags: OrderService.createOrders
|
|
26
|
+
|
|
27
|
+
require 'rubygems'
|
|
28
|
+
require 'dfp_api'
|
|
29
|
+
|
|
30
|
+
API_VERSION = :v201103
|
|
31
|
+
# Number of orders to create.
|
|
32
|
+
ITEM_COUNT = 5
|
|
33
|
+
|
|
34
|
+
def create_orders()
|
|
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 OrderService.
|
|
43
|
+
order_service = dfp.service(:OrderService, API_VERSION)
|
|
44
|
+
|
|
45
|
+
# Set the advertiser (company), salesperson, and trafficker to assign to each
|
|
46
|
+
# order.
|
|
47
|
+
advertiser_id = 'INSERT_ADVERTISER_COMPANY_ID_HERE'.to_i
|
|
48
|
+
salesperson_id = 'INSERT_SALESPERSON_ID_HERE'.to_i
|
|
49
|
+
trafficker_id = 'INSERT_TRAFFICKER_ID_HERE'.to_i
|
|
50
|
+
|
|
51
|
+
# Create an array to store local order objects.
|
|
52
|
+
orders = Array.new
|
|
53
|
+
ITEM_COUNT.times do |index|
|
|
54
|
+
orders << {:name => "Order #%d" % index,
|
|
55
|
+
:advertiser_id => advertiser_id,
|
|
56
|
+
:salesperson_id => salesperson_id,
|
|
57
|
+
:trafficker_id => trafficker_id}
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Create the orders on the server.
|
|
61
|
+
return_orders = order_service.create_orders(orders)
|
|
62
|
+
|
|
63
|
+
if return_orders
|
|
64
|
+
return_orders.each do |order|
|
|
65
|
+
puts "Order with ID: %d and name: %s was created." %
|
|
66
|
+
[order[:id], order[:name]]
|
|
67
|
+
end
|
|
68
|
+
else
|
|
69
|
+
raise 'No orders were created.'
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
if __FILE__ == $0
|
|
75
|
+
begin
|
|
76
|
+
create_orders()
|
|
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,93 @@
|
|
|
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 orders. To create orders, run create_orders.rb.
|
|
21
|
+
#
|
|
22
|
+
# Tags: OrderService.getOrdersByStatement
|
|
23
|
+
|
|
24
|
+
require 'rubygems'
|
|
25
|
+
require 'dfp_api'
|
|
26
|
+
|
|
27
|
+
API_VERSION = :v201103
|
|
28
|
+
PAGE_SIZE = 500
|
|
29
|
+
|
|
30
|
+
def get_all_orders()
|
|
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 OrderService.
|
|
39
|
+
order_service = dfp.service(:OrderService, API_VERSION)
|
|
40
|
+
|
|
41
|
+
# Define initial values.
|
|
42
|
+
offset = 0
|
|
43
|
+
page = Hash.new
|
|
44
|
+
|
|
45
|
+
begin
|
|
46
|
+
# Create statement for one page with current offset.
|
|
47
|
+
statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
|
|
48
|
+
|
|
49
|
+
# Get orders by statement.
|
|
50
|
+
page = order_service.get_orders_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 order in results page.
|
|
60
|
+
page[:results].each_with_index do |order, index|
|
|
61
|
+
puts "%d) Order ID: %d, name: %s, advertiser ID: %d" %
|
|
62
|
+
[index + start_index, order[:id], order[:name],
|
|
63
|
+
order[:advertiser_id]]
|
|
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 orders: %d" % page[:total_result_set_size]
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
if __FILE__ == $0
|
|
75
|
+
begin
|
|
76
|
+
get_all_orders()
|
|
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,74 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
#
|
|
3
|
+
# Author:: api.dklimkin@gmail.com (Danial Klimkin)
|
|
4
|
+
#
|
|
5
|
+
# Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
|
|
6
|
+
#
|
|
7
|
+
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
16
|
+
# implied.
|
|
17
|
+
# See the License for the specific language governing permissions and
|
|
18
|
+
# limitations under the License.
|
|
19
|
+
#
|
|
20
|
+
# This example gets an order by its ID. To determine which orders exist, run
|
|
21
|
+
# get_all_orders.rb.
|
|
22
|
+
#
|
|
23
|
+
# Tags: OrderService.getOrder
|
|
24
|
+
|
|
25
|
+
require 'rubygems'
|
|
26
|
+
require 'dfp_api'
|
|
27
|
+
|
|
28
|
+
API_VERSION = :v201103
|
|
29
|
+
|
|
30
|
+
def get_order()
|
|
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 OrderService.
|
|
39
|
+
order_service = dfp.service(:OrderService, API_VERSION)
|
|
40
|
+
|
|
41
|
+
# Set the ID of the order to get.
|
|
42
|
+
order_id = 'INSERT_ORDER_ID_HERE'.to_i
|
|
43
|
+
|
|
44
|
+
# Get the order.
|
|
45
|
+
order = order_service.get_order(order_id)
|
|
46
|
+
|
|
47
|
+
if order
|
|
48
|
+
puts "Order with ID: %d, advertiser ID: %d and name %s was found." %
|
|
49
|
+
[order[:id], order[:advertiser_id], order[:name]]
|
|
50
|
+
else
|
|
51
|
+
puts 'No order found for this ID.'
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
if __FILE__ == $0
|
|
56
|
+
begin
|
|
57
|
+
get_order()
|
|
58
|
+
|
|
59
|
+
# HTTP errors.
|
|
60
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
61
|
+
puts "HTTP Error: %s" % e
|
|
62
|
+
|
|
63
|
+
# API errors.
|
|
64
|
+
rescue DfpApi::Errors::ApiException => e
|
|
65
|
+
puts "Message: %s" % e.message
|
|
66
|
+
puts 'Errors:'
|
|
67
|
+
e.errors.each_with_index do |error, index|
|
|
68
|
+
puts "\tError [%d]:" % (index + 1)
|
|
69
|
+
error.each do |field, value|
|
|
70
|
+
puts "\t\t%s: %s" % [field, value]
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,90 @@
|
|
|
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 orders for a given advertiser. The statement retrieves
|
|
21
|
+
# up to the maximum page size limit of 500. To create orders, run
|
|
22
|
+
# create_orders.rb. To determine which companies are advertisers, run
|
|
23
|
+
# get_companies_by_statement.rb.
|
|
24
|
+
#
|
|
25
|
+
# Tags: OrderService.getOrdersByStatement
|
|
26
|
+
|
|
27
|
+
require 'rubygems'
|
|
28
|
+
require 'dfp_api'
|
|
29
|
+
|
|
30
|
+
API_VERSION = :v201103
|
|
31
|
+
|
|
32
|
+
def get_orders_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 OrderService.
|
|
41
|
+
order_service = dfp.service(:OrderService, API_VERSION)
|
|
42
|
+
|
|
43
|
+
# Set the ID of the advertiser (company) to get orders for.
|
|
44
|
+
advertiser_id = 'INSERT_ADVERTISER_COMPANY_ID_HERE'.to_i
|
|
45
|
+
|
|
46
|
+
# Create a statement to only select orders for a given advertiser.
|
|
47
|
+
statement = {
|
|
48
|
+
:query => 'WHERE advertiserId = :advertiser_id LIMIT 500',
|
|
49
|
+
:values => [
|
|
50
|
+
{:key => 'advertiser_id',
|
|
51
|
+
:value => {:value => advertiser_id, :xsi_type => 'NumberValue'}}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
# Get orders by statement.
|
|
56
|
+
page = order_service.get_orders_by_statement(statement)
|
|
57
|
+
|
|
58
|
+
if page and page[:results]
|
|
59
|
+
page[:results].each_with_index do |order, index|
|
|
60
|
+
puts "%d) Order ID: %d, belongs to advertiser ID: %d, name: %s." % [index,
|
|
61
|
+
order[:id], order[:advertiser_id], order[:name]]
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Print a footer.
|
|
66
|
+
if page.include?(:total_result_set_size)
|
|
67
|
+
puts "Number of results found: %d" % page[:total_result_set_size]
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
if __FILE__ == $0
|
|
72
|
+
begin
|
|
73
|
+
get_orders_by_statement()
|
|
74
|
+
|
|
75
|
+
# HTTP errors.
|
|
76
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
77
|
+
puts "HTTP Error: %s" % e
|
|
78
|
+
|
|
79
|
+
# API errors.
|
|
80
|
+
rescue DfpApi::Errors::ApiException => e
|
|
81
|
+
puts "Message: %s" % e.message
|
|
82
|
+
puts 'Errors:'
|
|
83
|
+
e.errors.each_with_index do |error, index|
|
|
84
|
+
puts "\tError [%d]:" % (index + 1)
|
|
85
|
+
error.each do |field, value|
|
|
86
|
+
puts "\t\t%s: %s" % [field, value]
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|