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.
- data/ChangeLog +3 -0
- data/examples/v201302/activity_group_service/create_activity_groups.rb +94 -0
- data/examples/v201302/activity_group_service/get_active_activity_groups.rb +100 -0
- data/examples/v201302/activity_group_service/get_all_activity_groups.rb +95 -0
- data/examples/v201302/activity_group_service/update_activity_groups.rb +87 -0
- data/examples/v201302/activity_service/create_activities.rb +91 -0
- data/examples/v201302/activity_service/get_active_activities.rb +107 -0
- data/examples/v201302/activity_service/get_all_activities.rb +144 -0
- data/examples/v201302/activity_service/update_activities.rb +85 -0
- data/examples/v201302/audience_segment_service/get_all_audience_segments.rb +93 -0
- data/examples/v201302/common/error_handling.rb +76 -0
- data/examples/v201302/common/oauth2_handling.rb +128 -0
- data/examples/v201302/common/oauth2_jwt_handling.rb +107 -0
- data/examples/v201302/company_service/create_companies.rb +81 -0
- data/examples/v201302/company_service/get_all_companies.rb +92 -0
- data/examples/v201302/company_service/get_companies_by_statement.rb +88 -0
- data/examples/v201302/company_service/get_company.rb +72 -0
- data/examples/v201302/company_service/update_companies.rb +102 -0
- data/examples/v201302/contact_service/create_contacts.rb +95 -0
- data/examples/v201302/contact_service/get_all_contacts.rb +92 -0
- data/examples/v201302/contact_service/get_uninvited_contacts.rb +102 -0
- data/examples/v201302/contact_service/update_contacts.rb +84 -0
- data/examples/v201302/content_service/get_all_content.rb +94 -0
- data/examples/v201302/content_service/get_content_by_category.rb +143 -0
- data/examples/v201302/creative_service/copy_image_creatives.rb +115 -0
- data/examples/v201302/creative_service/create_creative_from_template.rb +139 -0
- data/examples/v201302/creative_service/create_creatives.rb +112 -0
- data/examples/v201302/creative_service/create_custom_creative.rb +104 -0
- data/examples/v201302/creative_service/get_all_creatives.rb +93 -0
- data/examples/v201302/creative_service/get_creative.rb +72 -0
- data/examples/v201302/creative_service/get_creatives_by_statement.rb +87 -0
- data/examples/v201302/creative_service/update_creatives.rb +96 -0
- data/examples/v201302/creative_set_service/associate_creative_set_to_line_item.rb +77 -0
- data/examples/v201302/creative_set_service/create_creative_set.rb +83 -0
- data/examples/v201302/creative_set_service/get_all_creative_sets.rb +94 -0
- data/examples/v201302/creative_set_service/get_creative_sets_by_statement.rb +90 -0
- data/examples/v201302/creative_set_service/update_creative_sets.rb +85 -0
- data/examples/v201302/creative_template_service/get_all_creative_templates.rb +94 -0
- data/examples/v201302/creative_template_service/get_creative_template.rb +74 -0
- data/examples/v201302/creative_template_service/get_creative_templates_by_statement.rb +80 -0
- data/examples/v201302/creative_wrapper_service/create_creative_wrappers.rb +89 -0
- data/examples/v201302/creative_wrapper_service/deactivate_creative_wrapper.rb +102 -0
- data/examples/v201302/creative_wrapper_service/get_all_creative_wrappers.rb +94 -0
- data/examples/v201302/creative_wrapper_service/get_creative_wrappers_by_statement.rb +88 -0
- data/examples/v201302/creative_wrapper_service/update_creative_wrappers.rb +86 -0
- data/examples/v201302/custom_field_service/create_custom_field_options.rb +87 -0
- data/examples/v201302/custom_field_service/create_custom_fields.rb +86 -0
- data/examples/v201302/custom_field_service/deactivate_all_line_item_custom_fields.rb +112 -0
- data/examples/v201302/custom_field_service/get_all_custom_fields.rb +102 -0
- data/examples/v201302/custom_field_service/get_all_line_item_custom_fields.rb +86 -0
- data/examples/v201302/custom_field_service/set_line_item_custom_field_value.rb +135 -0
- data/examples/v201302/custom_field_service/update_custom_fields.rb +84 -0
- data/examples/v201302/custom_targeting_service/create_custom_targeting_keys_and_values.rb +140 -0
- data/examples/v201302/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
- data/examples/v201302/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
- data/examples/v201302/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
- data/examples/v201302/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
- data/examples/v201302/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
- data/examples/v201302/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
- data/examples/v201302/custom_targeting_service/update_custom_targeting_values.rb +106 -0
- data/examples/v201302/forecast_service/get_forecast.rb +107 -0
- data/examples/v201302/forecast_service/get_forecast_by_id.rb +80 -0
- data/examples/v201302/inventory_service/create_ad_units.rb +101 -0
- data/examples/v201302/inventory_service/create_mobile_ad_unit.rb +101 -0
- data/examples/v201302/inventory_service/create_video_ad_unit.rb +108 -0
- data/examples/v201302/inventory_service/deactivate_ad_units.rb +119 -0
- data/examples/v201302/inventory_service/get_ad_unit.rb +72 -0
- data/examples/v201302/inventory_service/get_ad_unit_sizes.rb +85 -0
- data/examples/v201302/inventory_service/get_ad_units_by_statement.rb +96 -0
- data/examples/v201302/inventory_service/get_all_ad_units.rb +93 -0
- data/examples/v201302/inventory_service/update_ad_units.rb +96 -0
- data/examples/v201302/label_service/create_labels.rb +83 -0
- data/examples/v201302/label_service/deactivate_labels.rb +118 -0
- data/examples/v201302/label_service/get_all_labels.rb +95 -0
- data/examples/v201302/label_service/get_label.rb +76 -0
- data/examples/v201302/label_service/get_labels_by_statement.rb +81 -0
- data/examples/v201302/label_service/update_labels.rb +102 -0
- data/examples/v201302/line_item_creative_association_service/create_licas.rb +94 -0
- data/examples/v201302/line_item_creative_association_service/deactivate_licas.rb +127 -0
- data/examples/v201302/line_item_creative_association_service/get_all_licas.rb +98 -0
- data/examples/v201302/line_item_creative_association_service/get_lica.rb +77 -0
- data/examples/v201302/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
- data/examples/v201302/line_item_creative_association_service/update_licas.rb +91 -0
- data/examples/v201302/line_item_service/activate_line_items.rb +131 -0
- data/examples/v201302/line_item_service/create_line_items.rb +177 -0
- data/examples/v201302/line_item_service/create_mobile_line_item.rb +135 -0
- data/examples/v201302/line_item_service/create_video_line_item.rb +158 -0
- data/examples/v201302/line_item_service/get_all_line_items.rb +94 -0
- data/examples/v201302/line_item_service/get_line_item.rb +74 -0
- data/examples/v201302/line_item_service/get_line_items_by_statement.rb +93 -0
- data/examples/v201302/line_item_service/get_recently_updated_line_items.rb +98 -0
- data/examples/v201302/line_item_service/target_custom_criteria.rb +129 -0
- data/examples/v201302/line_item_service/update_line_items.rb +109 -0
- data/examples/v201302/network_service/get_all_networks.rb +74 -0
- data/examples/v201302/network_service/get_current_network.rb +66 -0
- data/examples/v201302/network_service/make_test_network.rb +79 -0
- data/examples/v201302/order_service/approve_orders.rb +122 -0
- data/examples/v201302/order_service/create_orders.rb +92 -0
- data/examples/v201302/order_service/get_all_orders.rb +93 -0
- data/examples/v201302/order_service/get_order.rb +74 -0
- data/examples/v201302/order_service/get_orders_by_statement.rb +90 -0
- data/examples/v201302/order_service/update_orders.rb +97 -0
- data/examples/v201302/placement_service/create_placements.rb +131 -0
- data/examples/v201302/placement_service/deactivate_placements.rb +118 -0
- data/examples/v201302/placement_service/get_all_placements.rb +93 -0
- data/examples/v201302/placement_service/get_placement.rb +74 -0
- data/examples/v201302/placement_service/get_placements_by_statement.rb +86 -0
- data/examples/v201302/placement_service/update_placements.rb +97 -0
- data/examples/v201302/publisher_query_language_service/get_all_cities.rb +104 -0
- data/examples/v201302/report_service/display_report.rb +81 -0
- data/examples/v201302/report_service/download_report.rb +81 -0
- data/examples/v201302/report_service/run_delivery_report.rb +103 -0
- data/examples/v201302/report_service/run_inventory_report.rb +96 -0
- data/examples/v201302/report_service/run_merged_delivery_report.rb +94 -0
- data/examples/v201302/report_service/run_reach_report.rb +87 -0
- data/examples/v201302/report_service/run_report_with_custom_fields.rb +135 -0
- data/examples/v201302/report_service/run_sales_report.rb +92 -0
- data/examples/v201302/suggested_ad_unit_service/approve_all_suggested_ad_units.rb +109 -0
- data/examples/v201302/suggested_ad_unit_service/get_all_suggested_ad_units.rb +96 -0
- data/examples/v201302/suggested_ad_unit_service/get_suggested_ad_unit.rb +75 -0
- data/examples/v201302/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +92 -0
- data/examples/v201302/team_service/create_teams.rb +83 -0
- data/examples/v201302/team_service/get_all_teams.rb +92 -0
- data/examples/v201302/team_service/get_team.rb +74 -0
- data/examples/v201302/team_service/get_teams_by_statement.rb +78 -0
- data/examples/v201302/team_service/update_teams.rb +97 -0
- data/examples/v201302/third_party_slot_service/archive_third_party_slots.rb +125 -0
- data/examples/v201302/third_party_slot_service/create_third_party_slot.rb +91 -0
- data/examples/v201302/third_party_slot_service/get_all_third_party_slots.rb +93 -0
- data/examples/v201302/third_party_slot_service/get_third_party_slot_by_statement.rb +86 -0
- data/examples/v201302/third_party_slot_service/update_third_party_slots.rb +95 -0
- data/examples/v201302/user_service/create_users.rb +89 -0
- data/examples/v201302/user_service/deactivate_users.rb +97 -0
- data/examples/v201302/user_service/get_all_roles.rb +73 -0
- data/examples/v201302/user_service/get_all_users.rb +93 -0
- data/examples/v201302/user_service/get_current_user.rb +66 -0
- data/examples/v201302/user_service/get_user.rb +73 -0
- data/examples/v201302/user_service/get_users_by_statement.rb +79 -0
- data/examples/v201302/user_service/update_users.rb +89 -0
- data/examples/v201302/user_team_association_service/create_user_team_associations.rb +86 -0
- data/examples/v201302/user_team_association_service/delete_user_team_associations.rb +111 -0
- data/examples/v201302/user_team_association_service/get_all_user_team_associations.rb +94 -0
- data/examples/v201302/user_team_association_service/get_user_team_association.rb +76 -0
- data/examples/v201302/user_team_association_service/get_user_team_associations_by_statement.rb +94 -0
- data/examples/v201302/user_team_association_service/update_user_team_associations.rb +102 -0
- data/lib/dfp_api/api_config.rb +17 -4
- data/lib/dfp_api/v201302/activity_group_service.rb +54 -0
- data/lib/dfp_api/v201302/activity_group_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/activity_service.rb +54 -0
- data/lib/dfp_api/v201302/activity_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/ad_rule_service.rb +58 -0
- data/lib/dfp_api/v201302/ad_rule_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/audience_segment_service.rb +34 -0
- data/lib/dfp_api/v201302/audience_segment_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/company_service.rb +54 -0
- data/lib/dfp_api/v201302/company_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/contact_service.rb +54 -0
- data/lib/dfp_api/v201302/contact_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/content_bundle_service.rb +58 -0
- data/lib/dfp_api/v201302/content_bundle_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/content_service.rb +38 -0
- data/lib/dfp_api/v201302/content_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/creative_service.rb +54 -0
- data/lib/dfp_api/v201302/creative_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/creative_set_service.rb +46 -0
- data/lib/dfp_api/v201302/creative_set_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/creative_template_service.rb +38 -0
- data/lib/dfp_api/v201302/creative_template_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/creative_wrapper_service.rb +58 -0
- data/lib/dfp_api/v201302/creative_wrapper_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/custom_field_service.rb +78 -0
- data/lib/dfp_api/v201302/custom_field_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/custom_targeting_service.rb +62 -0
- data/lib/dfp_api/v201302/custom_targeting_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/forecast_service.rb +38 -0
- data/lib/dfp_api/v201302/forecast_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/inventory_service.rb +62 -0
- data/lib/dfp_api/v201302/inventory_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/label_service.rb +58 -0
- data/lib/dfp_api/v201302/label_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/line_item_creative_association_service.rb +62 -0
- data/lib/dfp_api/v201302/line_item_creative_association_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/line_item_service.rb +58 -0
- data/lib/dfp_api/v201302/line_item_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/network_service.rb +46 -0
- data/lib/dfp_api/v201302/network_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/order_service.rb +58 -0
- data/lib/dfp_api/v201302/order_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/placement_service.rb +58 -0
- data/lib/dfp_api/v201302/placement_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/publisher_query_language_service.rb +34 -0
- data/lib/dfp_api/v201302/publisher_query_language_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/report_service.rb +46 -0
- data/lib/dfp_api/v201302/report_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/suggested_ad_unit_service.rb +42 -0
- data/lib/dfp_api/v201302/suggested_ad_unit_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/team_service.rb +54 -0
- data/lib/dfp_api/v201302/team_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/third_party_slot_service.rb +46 -0
- data/lib/dfp_api/v201302/third_party_slot_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/user_service.rb +66 -0
- data/lib/dfp_api/v201302/user_service_registry.rb +46 -0
- data/lib/dfp_api/v201302/user_team_association_service.rb +58 -0
- data/lib/dfp_api/v201302/user_team_association_service_registry.rb +46 -0
- data/lib/dfp_api/version.rb +1 -1
- metadata +988 -786
data/ChangeLog
CHANGED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# Encoding: utf-8
|
|
3
|
+
#
|
|
4
|
+
# Author:: api.davidtorres@gmail.com (David Torres)
|
|
5
|
+
#
|
|
6
|
+
# Copyright:: Copyright 2013, 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 activity groups. To determine which activity groups
|
|
22
|
+
# exist, run get_all_activity_groups.rb.
|
|
23
|
+
#
|
|
24
|
+
# Tags: ActivityGroupService.createActivityGroups
|
|
25
|
+
|
|
26
|
+
require 'dfp_api'
|
|
27
|
+
|
|
28
|
+
API_VERSION = :v201302
|
|
29
|
+
|
|
30
|
+
def create_activity_groups()
|
|
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 ActivityGroupService.
|
|
39
|
+
activity_group_service = dfp.service(:ActivityGroupService, API_VERSION)
|
|
40
|
+
|
|
41
|
+
# Set the ID of the advertiser company this activity group is associated
|
|
42
|
+
# with.
|
|
43
|
+
advertiser_company_id = 'INSERT_ADVERTISER_COMPANY_ID_HERE';
|
|
44
|
+
|
|
45
|
+
# Create a short-term activity group.
|
|
46
|
+
short_term_activity_group = {
|
|
47
|
+
:name => 'Short-term activity group',
|
|
48
|
+
:company_ids => [advertiser_company_id],
|
|
49
|
+
:clicks_lookback => 1,
|
|
50
|
+
:impressions_lookback => 1
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
# Create a long-term activity group.
|
|
54
|
+
long_term_activity_group = {
|
|
55
|
+
:name => 'Long-term activity group',
|
|
56
|
+
:company_ids => [advertiser_company_id],
|
|
57
|
+
:clicks_lookback => 30,
|
|
58
|
+
:impressions_lookback => 30
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
# Create the activity groups on the server.
|
|
62
|
+
return_activity_groups = activity_group_service.create_activity_groups([
|
|
63
|
+
short_term_activity_group, long_term_activity_group])
|
|
64
|
+
|
|
65
|
+
if return_activity_groups
|
|
66
|
+
return_activity_groups.each do |activity_group|
|
|
67
|
+
puts "An activity group with ID: %d and name: %s was created." %
|
|
68
|
+
[activity_group[:id], activity_group[:name]]
|
|
69
|
+
end
|
|
70
|
+
else
|
|
71
|
+
raise 'No activity groups were created.'
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
if __FILE__ == $0
|
|
76
|
+
begin
|
|
77
|
+
create_activity_groups()
|
|
78
|
+
|
|
79
|
+
# HTTP errors.
|
|
80
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
81
|
+
puts "HTTP Error: %s" % e
|
|
82
|
+
|
|
83
|
+
# API errors.
|
|
84
|
+
rescue DfpApi::Errors::ApiException => e
|
|
85
|
+
puts "Message: %s" % e.message
|
|
86
|
+
puts 'Errors:'
|
|
87
|
+
e.errors.each_with_index do |error, index|
|
|
88
|
+
puts "\tError [%d]:" % (index + 1)
|
|
89
|
+
error.each do |field, value|
|
|
90
|
+
puts "\t\t%s: %s" % [field, value]
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# Encoding: utf-8
|
|
3
|
+
#
|
|
4
|
+
# Author:: api.davidtorres@gmail.com (David Torres)
|
|
5
|
+
#
|
|
6
|
+
# Copyright:: Copyright 2013, 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 active activity groups. To create activity groups,
|
|
22
|
+
# run create_activity_groups.rb.
|
|
23
|
+
#
|
|
24
|
+
# Tags: ActivityGroupService.getActivityGroupsByStatement
|
|
25
|
+
|
|
26
|
+
require 'dfp_api'
|
|
27
|
+
|
|
28
|
+
API_VERSION = :v201302
|
|
29
|
+
PAGE_SIZE = 500
|
|
30
|
+
|
|
31
|
+
def get_active_activity_groups()
|
|
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 ActivityGroupService.
|
|
40
|
+
activity_group_service = dfp.service(:ActivityGroupService, API_VERSION)
|
|
41
|
+
|
|
42
|
+
# Define initial values.
|
|
43
|
+
offset = 0
|
|
44
|
+
page = {}
|
|
45
|
+
|
|
46
|
+
begin
|
|
47
|
+
# Create statement for one page with current offset.
|
|
48
|
+
statement = {
|
|
49
|
+
:query => 'WHERE status = :status ORDER BY id LIMIT %d OFFSET %d' %
|
|
50
|
+
[PAGE_SIZE, offset],
|
|
51
|
+
:values => [
|
|
52
|
+
{:key => 'status',
|
|
53
|
+
:value => {:value => 'ACTIVE', :xsi_type => 'TextValue'}}
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
# Get activity groups by statement.
|
|
58
|
+
page = activity_group_service.get_activity_groups_by_statement(statement)
|
|
59
|
+
|
|
60
|
+
if page[:results]
|
|
61
|
+
# Increase query offset by page size.
|
|
62
|
+
offset += PAGE_SIZE
|
|
63
|
+
|
|
64
|
+
# Get the start index for printout.
|
|
65
|
+
start_index = page[:start_index]
|
|
66
|
+
|
|
67
|
+
# Print details about each content object in results page.
|
|
68
|
+
page[:results].each_with_index do |activity_group, index|
|
|
69
|
+
puts "%d) Activity group with ID: %d, name: %s." % [index + start_index,
|
|
70
|
+
activity_group[:id], activity_group[:name]]
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end while offset < page[:total_result_set_size]
|
|
74
|
+
|
|
75
|
+
# Print a footer
|
|
76
|
+
if page.include?(:total_result_set_size)
|
|
77
|
+
puts "Total number of results: %d" % page[:total_result_set_size]
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
if __FILE__ == $0
|
|
82
|
+
begin
|
|
83
|
+
get_active_activity_groups()
|
|
84
|
+
|
|
85
|
+
# HTTP errors.
|
|
86
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
87
|
+
puts "HTTP Error: %s" % e
|
|
88
|
+
|
|
89
|
+
# API errors.
|
|
90
|
+
rescue DfpApi::Errors::ApiException => e
|
|
91
|
+
puts "Message: %s" % e.message
|
|
92
|
+
puts 'Errors:'
|
|
93
|
+
e.errors.each_with_index do |error, index|
|
|
94
|
+
puts "\tError [%d]:" % (index + 1)
|
|
95
|
+
error.each do |field, value|
|
|
96
|
+
puts "\t\t%s: %s" % [field, value]
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# Encoding: utf-8
|
|
3
|
+
#
|
|
4
|
+
# Author:: api.davidtorres@gmail.com (David Torres)
|
|
5
|
+
#
|
|
6
|
+
# Copyright:: Copyright 2013, 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 activity groups. To create activity groups,
|
|
22
|
+
# run create_activity_groups.rb.
|
|
23
|
+
#
|
|
24
|
+
# Tags: ActivityGroupService.getActivityGroupsByStatement
|
|
25
|
+
|
|
26
|
+
require 'dfp_api'
|
|
27
|
+
|
|
28
|
+
API_VERSION = :v201302
|
|
29
|
+
PAGE_SIZE = 500
|
|
30
|
+
|
|
31
|
+
def get_all_activity_groups()
|
|
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 ActivityGroupService.
|
|
40
|
+
activity_group_service = dfp.service(:ActivityGroupService, API_VERSION)
|
|
41
|
+
|
|
42
|
+
# Define initial values.
|
|
43
|
+
offset = 0
|
|
44
|
+
page = {}
|
|
45
|
+
|
|
46
|
+
begin
|
|
47
|
+
# Create statement for one page with current offset.
|
|
48
|
+
statement = {
|
|
49
|
+
:query => 'ORDER BY id LIMIT %d OFFSET %d' % [PAGE_SIZE, offset],
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
# Get activity groups by statement.
|
|
53
|
+
page = activity_group_service.get_activity_groups_by_statement(statement)
|
|
54
|
+
|
|
55
|
+
if page[:results]
|
|
56
|
+
# Increase query offset by page size.
|
|
57
|
+
offset += PAGE_SIZE
|
|
58
|
+
|
|
59
|
+
# Get the start index for printout.
|
|
60
|
+
start_index = page[:start_index]
|
|
61
|
+
|
|
62
|
+
# Print details about each content object in results page.
|
|
63
|
+
page[:results].each_with_index do |activity_group, index|
|
|
64
|
+
puts "%d) Activity group with ID: %d, name: %s." % [index + start_index,
|
|
65
|
+
activity_group[:id], activity_group[:name]]
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end while offset < page[:total_result_set_size]
|
|
69
|
+
|
|
70
|
+
# Print a footer
|
|
71
|
+
if page.include?(:total_result_set_size)
|
|
72
|
+
puts "Total number of results: %d" % page[:total_result_set_size]
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
if __FILE__ == $0
|
|
77
|
+
begin
|
|
78
|
+
get_all_activity_groups()
|
|
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,87 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# Encoding: utf-8
|
|
3
|
+
#
|
|
4
|
+
# Author:: api.davidtorres@gmail.com (David Torres)
|
|
5
|
+
#
|
|
6
|
+
# Copyright:: Copyright 2013, 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 activity groups by adding a company. To determine which
|
|
22
|
+
# activity groups exist, run get_all_activity_groups.rb.
|
|
23
|
+
#
|
|
24
|
+
# Tags: ActivityGroupService.getActivityGroup
|
|
25
|
+
# Tags: ActivityGroupService.updateActivityGroups
|
|
26
|
+
|
|
27
|
+
require 'dfp_api'
|
|
28
|
+
|
|
29
|
+
API_VERSION = :v201302
|
|
30
|
+
|
|
31
|
+
def update_activity_groups()
|
|
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 ActivityGroupService.
|
|
40
|
+
activity_group_service = dfp.service(:ActivityGroupService, API_VERSION)
|
|
41
|
+
|
|
42
|
+
# Set the ID of the activity group and the company to update it with.
|
|
43
|
+
activity_group_id = 'INSERT_ACTIVITY_GROUP_ID_HERE'
|
|
44
|
+
advertiser_company_id = 'INSERT_ADVERTISER_COMPANY_ID_HERE'
|
|
45
|
+
|
|
46
|
+
# Get the activity group.
|
|
47
|
+
activity_group = activity_group_service.get_activity_group(activity_group_id)
|
|
48
|
+
|
|
49
|
+
# Update the companies.
|
|
50
|
+
activity_group[:company_ids] << advertiser_company_id
|
|
51
|
+
|
|
52
|
+
# Update the activity groups on the server.
|
|
53
|
+
return_activity_groups = activity_group_service.update_activity_groups([
|
|
54
|
+
activity_group])
|
|
55
|
+
|
|
56
|
+
# Display results.
|
|
57
|
+
if return_activity_groups
|
|
58
|
+
return_activity_groups.each do |updates_activity_group|
|
|
59
|
+
puts "Activity group with ID: %d and name: %s was updated." %
|
|
60
|
+
[updates_activity_group[:id], updates_activity_group[:name]]
|
|
61
|
+
end
|
|
62
|
+
else
|
|
63
|
+
raise 'No activity groups were updated.'
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
if __FILE__ == $0
|
|
69
|
+
begin
|
|
70
|
+
update_activity_groups()
|
|
71
|
+
|
|
72
|
+
# HTTP errors.
|
|
73
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
74
|
+
puts "HTTP Error: %s" % e
|
|
75
|
+
|
|
76
|
+
# API errors.
|
|
77
|
+
rescue DfpApi::Errors::ApiException => e
|
|
78
|
+
puts "Message: %s" % e.message
|
|
79
|
+
puts 'Errors:'
|
|
80
|
+
e.errors.each_with_index do |error, index|
|
|
81
|
+
puts "\tError [%d]:" % (index + 1)
|
|
82
|
+
error.each do |field, value|
|
|
83
|
+
puts "\t\t%s: %s" % [field, value]
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# Encoding: utf-8
|
|
3
|
+
#
|
|
4
|
+
# Author:: api.davidtorres@gmail.com (David Torres)
|
|
5
|
+
#
|
|
6
|
+
# Copyright:: Copyright 2013, 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 activities. To determine which activities exist, run
|
|
22
|
+
# get_all_activities.php.
|
|
23
|
+
#
|
|
24
|
+
# Tags: ActivityService.createActivities
|
|
25
|
+
|
|
26
|
+
require 'dfp_api'
|
|
27
|
+
|
|
28
|
+
API_VERSION = :v201302
|
|
29
|
+
|
|
30
|
+
def create_activities()
|
|
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 ActivityService.
|
|
39
|
+
activity_service = dfp.service(:ActivityService, API_VERSION)
|
|
40
|
+
|
|
41
|
+
# Set the ID of the activity group this activity is associated with.
|
|
42
|
+
activity_group_id = 'INSERT_ACTIVITY_GROUP_ID_HERE';
|
|
43
|
+
|
|
44
|
+
# Create a daily visits activity.
|
|
45
|
+
daily_visits_activity = {
|
|
46
|
+
:name => 'Activity',
|
|
47
|
+
:activity_group_id => activity_group_id,
|
|
48
|
+
:type => 'DAILY_VISITS'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
# Create a custom activity.
|
|
52
|
+
custom_activity = {
|
|
53
|
+
:name => 'Activity',
|
|
54
|
+
:activity_group_id => activity_group_id,
|
|
55
|
+
:type => 'CUSTOM'
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
# Create the activities on the server.
|
|
59
|
+
return_activities = activity_service.create_activities([
|
|
60
|
+
daily_visits_activity, custom_activity])
|
|
61
|
+
|
|
62
|
+
if return_activities
|
|
63
|
+
return_activities.each do |activity|
|
|
64
|
+
puts "An activity with ID: %d, name: %s and type: %s was created." %
|
|
65
|
+
[activity[:id], activity[:name], activity[:type]]
|
|
66
|
+
end
|
|
67
|
+
else
|
|
68
|
+
raise 'No activities were created.'
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
if __FILE__ == $0
|
|
73
|
+
begin
|
|
74
|
+
create_activities()
|
|
75
|
+
|
|
76
|
+
# HTTP errors.
|
|
77
|
+
rescue AdsCommon::Errors::HttpError => e
|
|
78
|
+
puts "HTTP Error: %s" % e
|
|
79
|
+
|
|
80
|
+
# API errors.
|
|
81
|
+
rescue DfpApi::Errors::ApiException => e
|
|
82
|
+
puts "Message: %s" % e.message
|
|
83
|
+
puts 'Errors:'
|
|
84
|
+
e.errors.each_with_index do |error, index|
|
|
85
|
+
puts "\tError [%d]:" % (index + 1)
|
|
86
|
+
error.each do |field, value|
|
|
87
|
+
puts "\t\t%s: %s" % [field, value]
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|