google-dfp-api 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. data/ChangeLog +3 -0
  2. data/examples/v201302/activity_group_service/create_activity_groups.rb +94 -0
  3. data/examples/v201302/activity_group_service/get_active_activity_groups.rb +100 -0
  4. data/examples/v201302/activity_group_service/get_all_activity_groups.rb +95 -0
  5. data/examples/v201302/activity_group_service/update_activity_groups.rb +87 -0
  6. data/examples/v201302/activity_service/create_activities.rb +91 -0
  7. data/examples/v201302/activity_service/get_active_activities.rb +107 -0
  8. data/examples/v201302/activity_service/get_all_activities.rb +144 -0
  9. data/examples/v201302/activity_service/update_activities.rb +85 -0
  10. data/examples/v201302/audience_segment_service/get_all_audience_segments.rb +93 -0
  11. data/examples/v201302/common/error_handling.rb +76 -0
  12. data/examples/v201302/common/oauth2_handling.rb +128 -0
  13. data/examples/v201302/common/oauth2_jwt_handling.rb +107 -0
  14. data/examples/v201302/company_service/create_companies.rb +81 -0
  15. data/examples/v201302/company_service/get_all_companies.rb +92 -0
  16. data/examples/v201302/company_service/get_companies_by_statement.rb +88 -0
  17. data/examples/v201302/company_service/get_company.rb +72 -0
  18. data/examples/v201302/company_service/update_companies.rb +102 -0
  19. data/examples/v201302/contact_service/create_contacts.rb +95 -0
  20. data/examples/v201302/contact_service/get_all_contacts.rb +92 -0
  21. data/examples/v201302/contact_service/get_uninvited_contacts.rb +102 -0
  22. data/examples/v201302/contact_service/update_contacts.rb +84 -0
  23. data/examples/v201302/content_service/get_all_content.rb +94 -0
  24. data/examples/v201302/content_service/get_content_by_category.rb +143 -0
  25. data/examples/v201302/creative_service/copy_image_creatives.rb +115 -0
  26. data/examples/v201302/creative_service/create_creative_from_template.rb +139 -0
  27. data/examples/v201302/creative_service/create_creatives.rb +112 -0
  28. data/examples/v201302/creative_service/create_custom_creative.rb +104 -0
  29. data/examples/v201302/creative_service/get_all_creatives.rb +93 -0
  30. data/examples/v201302/creative_service/get_creative.rb +72 -0
  31. data/examples/v201302/creative_service/get_creatives_by_statement.rb +87 -0
  32. data/examples/v201302/creative_service/update_creatives.rb +96 -0
  33. data/examples/v201302/creative_set_service/associate_creative_set_to_line_item.rb +77 -0
  34. data/examples/v201302/creative_set_service/create_creative_set.rb +83 -0
  35. data/examples/v201302/creative_set_service/get_all_creative_sets.rb +94 -0
  36. data/examples/v201302/creative_set_service/get_creative_sets_by_statement.rb +90 -0
  37. data/examples/v201302/creative_set_service/update_creative_sets.rb +85 -0
  38. data/examples/v201302/creative_template_service/get_all_creative_templates.rb +94 -0
  39. data/examples/v201302/creative_template_service/get_creative_template.rb +74 -0
  40. data/examples/v201302/creative_template_service/get_creative_templates_by_statement.rb +80 -0
  41. data/examples/v201302/creative_wrapper_service/create_creative_wrappers.rb +89 -0
  42. data/examples/v201302/creative_wrapper_service/deactivate_creative_wrapper.rb +102 -0
  43. data/examples/v201302/creative_wrapper_service/get_all_creative_wrappers.rb +94 -0
  44. data/examples/v201302/creative_wrapper_service/get_creative_wrappers_by_statement.rb +88 -0
  45. data/examples/v201302/creative_wrapper_service/update_creative_wrappers.rb +86 -0
  46. data/examples/v201302/custom_field_service/create_custom_field_options.rb +87 -0
  47. data/examples/v201302/custom_field_service/create_custom_fields.rb +86 -0
  48. data/examples/v201302/custom_field_service/deactivate_all_line_item_custom_fields.rb +112 -0
  49. data/examples/v201302/custom_field_service/get_all_custom_fields.rb +102 -0
  50. data/examples/v201302/custom_field_service/get_all_line_item_custom_fields.rb +86 -0
  51. data/examples/v201302/custom_field_service/set_line_item_custom_field_value.rb +135 -0
  52. data/examples/v201302/custom_field_service/update_custom_fields.rb +84 -0
  53. data/examples/v201302/custom_targeting_service/create_custom_targeting_keys_and_values.rb +140 -0
  54. data/examples/v201302/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
  55. data/examples/v201302/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
  56. data/examples/v201302/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
  57. data/examples/v201302/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
  58. data/examples/v201302/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
  59. data/examples/v201302/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
  60. data/examples/v201302/custom_targeting_service/update_custom_targeting_values.rb +106 -0
  61. data/examples/v201302/forecast_service/get_forecast.rb +107 -0
  62. data/examples/v201302/forecast_service/get_forecast_by_id.rb +80 -0
  63. data/examples/v201302/inventory_service/create_ad_units.rb +101 -0
  64. data/examples/v201302/inventory_service/create_mobile_ad_unit.rb +101 -0
  65. data/examples/v201302/inventory_service/create_video_ad_unit.rb +108 -0
  66. data/examples/v201302/inventory_service/deactivate_ad_units.rb +119 -0
  67. data/examples/v201302/inventory_service/get_ad_unit.rb +72 -0
  68. data/examples/v201302/inventory_service/get_ad_unit_sizes.rb +85 -0
  69. data/examples/v201302/inventory_service/get_ad_units_by_statement.rb +96 -0
  70. data/examples/v201302/inventory_service/get_all_ad_units.rb +93 -0
  71. data/examples/v201302/inventory_service/update_ad_units.rb +96 -0
  72. data/examples/v201302/label_service/create_labels.rb +83 -0
  73. data/examples/v201302/label_service/deactivate_labels.rb +118 -0
  74. data/examples/v201302/label_service/get_all_labels.rb +95 -0
  75. data/examples/v201302/label_service/get_label.rb +76 -0
  76. data/examples/v201302/label_service/get_labels_by_statement.rb +81 -0
  77. data/examples/v201302/label_service/update_labels.rb +102 -0
  78. data/examples/v201302/line_item_creative_association_service/create_licas.rb +94 -0
  79. data/examples/v201302/line_item_creative_association_service/deactivate_licas.rb +127 -0
  80. data/examples/v201302/line_item_creative_association_service/get_all_licas.rb +98 -0
  81. data/examples/v201302/line_item_creative_association_service/get_lica.rb +77 -0
  82. data/examples/v201302/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
  83. data/examples/v201302/line_item_creative_association_service/update_licas.rb +91 -0
  84. data/examples/v201302/line_item_service/activate_line_items.rb +131 -0
  85. data/examples/v201302/line_item_service/create_line_items.rb +177 -0
  86. data/examples/v201302/line_item_service/create_mobile_line_item.rb +135 -0
  87. data/examples/v201302/line_item_service/create_video_line_item.rb +158 -0
  88. data/examples/v201302/line_item_service/get_all_line_items.rb +94 -0
  89. data/examples/v201302/line_item_service/get_line_item.rb +74 -0
  90. data/examples/v201302/line_item_service/get_line_items_by_statement.rb +93 -0
  91. data/examples/v201302/line_item_service/get_recently_updated_line_items.rb +98 -0
  92. data/examples/v201302/line_item_service/target_custom_criteria.rb +129 -0
  93. data/examples/v201302/line_item_service/update_line_items.rb +109 -0
  94. data/examples/v201302/network_service/get_all_networks.rb +74 -0
  95. data/examples/v201302/network_service/get_current_network.rb +66 -0
  96. data/examples/v201302/network_service/make_test_network.rb +79 -0
  97. data/examples/v201302/order_service/approve_orders.rb +122 -0
  98. data/examples/v201302/order_service/create_orders.rb +92 -0
  99. data/examples/v201302/order_service/get_all_orders.rb +93 -0
  100. data/examples/v201302/order_service/get_order.rb +74 -0
  101. data/examples/v201302/order_service/get_orders_by_statement.rb +90 -0
  102. data/examples/v201302/order_service/update_orders.rb +97 -0
  103. data/examples/v201302/placement_service/create_placements.rb +131 -0
  104. data/examples/v201302/placement_service/deactivate_placements.rb +118 -0
  105. data/examples/v201302/placement_service/get_all_placements.rb +93 -0
  106. data/examples/v201302/placement_service/get_placement.rb +74 -0
  107. data/examples/v201302/placement_service/get_placements_by_statement.rb +86 -0
  108. data/examples/v201302/placement_service/update_placements.rb +97 -0
  109. data/examples/v201302/publisher_query_language_service/get_all_cities.rb +104 -0
  110. data/examples/v201302/report_service/display_report.rb +81 -0
  111. data/examples/v201302/report_service/download_report.rb +81 -0
  112. data/examples/v201302/report_service/run_delivery_report.rb +103 -0
  113. data/examples/v201302/report_service/run_inventory_report.rb +96 -0
  114. data/examples/v201302/report_service/run_merged_delivery_report.rb +94 -0
  115. data/examples/v201302/report_service/run_reach_report.rb +87 -0
  116. data/examples/v201302/report_service/run_report_with_custom_fields.rb +135 -0
  117. data/examples/v201302/report_service/run_sales_report.rb +92 -0
  118. data/examples/v201302/suggested_ad_unit_service/approve_all_suggested_ad_units.rb +109 -0
  119. data/examples/v201302/suggested_ad_unit_service/get_all_suggested_ad_units.rb +96 -0
  120. data/examples/v201302/suggested_ad_unit_service/get_suggested_ad_unit.rb +75 -0
  121. data/examples/v201302/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +92 -0
  122. data/examples/v201302/team_service/create_teams.rb +83 -0
  123. data/examples/v201302/team_service/get_all_teams.rb +92 -0
  124. data/examples/v201302/team_service/get_team.rb +74 -0
  125. data/examples/v201302/team_service/get_teams_by_statement.rb +78 -0
  126. data/examples/v201302/team_service/update_teams.rb +97 -0
  127. data/examples/v201302/third_party_slot_service/archive_third_party_slots.rb +125 -0
  128. data/examples/v201302/third_party_slot_service/create_third_party_slot.rb +91 -0
  129. data/examples/v201302/third_party_slot_service/get_all_third_party_slots.rb +93 -0
  130. data/examples/v201302/third_party_slot_service/get_third_party_slot_by_statement.rb +86 -0
  131. data/examples/v201302/third_party_slot_service/update_third_party_slots.rb +95 -0
  132. data/examples/v201302/user_service/create_users.rb +89 -0
  133. data/examples/v201302/user_service/deactivate_users.rb +97 -0
  134. data/examples/v201302/user_service/get_all_roles.rb +73 -0
  135. data/examples/v201302/user_service/get_all_users.rb +93 -0
  136. data/examples/v201302/user_service/get_current_user.rb +66 -0
  137. data/examples/v201302/user_service/get_user.rb +73 -0
  138. data/examples/v201302/user_service/get_users_by_statement.rb +79 -0
  139. data/examples/v201302/user_service/update_users.rb +89 -0
  140. data/examples/v201302/user_team_association_service/create_user_team_associations.rb +86 -0
  141. data/examples/v201302/user_team_association_service/delete_user_team_associations.rb +111 -0
  142. data/examples/v201302/user_team_association_service/get_all_user_team_associations.rb +94 -0
  143. data/examples/v201302/user_team_association_service/get_user_team_association.rb +76 -0
  144. data/examples/v201302/user_team_association_service/get_user_team_associations_by_statement.rb +94 -0
  145. data/examples/v201302/user_team_association_service/update_user_team_associations.rb +102 -0
  146. data/lib/dfp_api/api_config.rb +17 -4
  147. data/lib/dfp_api/v201302/activity_group_service.rb +54 -0
  148. data/lib/dfp_api/v201302/activity_group_service_registry.rb +46 -0
  149. data/lib/dfp_api/v201302/activity_service.rb +54 -0
  150. data/lib/dfp_api/v201302/activity_service_registry.rb +46 -0
  151. data/lib/dfp_api/v201302/ad_rule_service.rb +58 -0
  152. data/lib/dfp_api/v201302/ad_rule_service_registry.rb +46 -0
  153. data/lib/dfp_api/v201302/audience_segment_service.rb +34 -0
  154. data/lib/dfp_api/v201302/audience_segment_service_registry.rb +46 -0
  155. data/lib/dfp_api/v201302/company_service.rb +54 -0
  156. data/lib/dfp_api/v201302/company_service_registry.rb +46 -0
  157. data/lib/dfp_api/v201302/contact_service.rb +54 -0
  158. data/lib/dfp_api/v201302/contact_service_registry.rb +46 -0
  159. data/lib/dfp_api/v201302/content_bundle_service.rb +58 -0
  160. data/lib/dfp_api/v201302/content_bundle_service_registry.rb +46 -0
  161. data/lib/dfp_api/v201302/content_service.rb +38 -0
  162. data/lib/dfp_api/v201302/content_service_registry.rb +46 -0
  163. data/lib/dfp_api/v201302/creative_service.rb +54 -0
  164. data/lib/dfp_api/v201302/creative_service_registry.rb +46 -0
  165. data/lib/dfp_api/v201302/creative_set_service.rb +46 -0
  166. data/lib/dfp_api/v201302/creative_set_service_registry.rb +46 -0
  167. data/lib/dfp_api/v201302/creative_template_service.rb +38 -0
  168. data/lib/dfp_api/v201302/creative_template_service_registry.rb +46 -0
  169. data/lib/dfp_api/v201302/creative_wrapper_service.rb +58 -0
  170. data/lib/dfp_api/v201302/creative_wrapper_service_registry.rb +46 -0
  171. data/lib/dfp_api/v201302/custom_field_service.rb +78 -0
  172. data/lib/dfp_api/v201302/custom_field_service_registry.rb +46 -0
  173. data/lib/dfp_api/v201302/custom_targeting_service.rb +62 -0
  174. data/lib/dfp_api/v201302/custom_targeting_service_registry.rb +46 -0
  175. data/lib/dfp_api/v201302/forecast_service.rb +38 -0
  176. data/lib/dfp_api/v201302/forecast_service_registry.rb +46 -0
  177. data/lib/dfp_api/v201302/inventory_service.rb +62 -0
  178. data/lib/dfp_api/v201302/inventory_service_registry.rb +46 -0
  179. data/lib/dfp_api/v201302/label_service.rb +58 -0
  180. data/lib/dfp_api/v201302/label_service_registry.rb +46 -0
  181. data/lib/dfp_api/v201302/line_item_creative_association_service.rb +62 -0
  182. data/lib/dfp_api/v201302/line_item_creative_association_service_registry.rb +46 -0
  183. data/lib/dfp_api/v201302/line_item_service.rb +58 -0
  184. data/lib/dfp_api/v201302/line_item_service_registry.rb +46 -0
  185. data/lib/dfp_api/v201302/network_service.rb +46 -0
  186. data/lib/dfp_api/v201302/network_service_registry.rb +46 -0
  187. data/lib/dfp_api/v201302/order_service.rb +58 -0
  188. data/lib/dfp_api/v201302/order_service_registry.rb +46 -0
  189. data/lib/dfp_api/v201302/placement_service.rb +58 -0
  190. data/lib/dfp_api/v201302/placement_service_registry.rb +46 -0
  191. data/lib/dfp_api/v201302/publisher_query_language_service.rb +34 -0
  192. data/lib/dfp_api/v201302/publisher_query_language_service_registry.rb +46 -0
  193. data/lib/dfp_api/v201302/report_service.rb +46 -0
  194. data/lib/dfp_api/v201302/report_service_registry.rb +46 -0
  195. data/lib/dfp_api/v201302/suggested_ad_unit_service.rb +42 -0
  196. data/lib/dfp_api/v201302/suggested_ad_unit_service_registry.rb +46 -0
  197. data/lib/dfp_api/v201302/team_service.rb +54 -0
  198. data/lib/dfp_api/v201302/team_service_registry.rb +46 -0
  199. data/lib/dfp_api/v201302/third_party_slot_service.rb +46 -0
  200. data/lib/dfp_api/v201302/third_party_slot_service_registry.rb +46 -0
  201. data/lib/dfp_api/v201302/user_service.rb +66 -0
  202. data/lib/dfp_api/v201302/user_service_registry.rb +46 -0
  203. data/lib/dfp_api/v201302/user_team_association_service.rb +58 -0
  204. data/lib/dfp_api/v201302/user_team_association_service_registry.rb +46 -0
  205. data/lib/dfp_api/version.rb +1 -1
  206. metadata +988 -786
@@ -0,0 +1,128 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2012, 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 shows how to use OAuth2.0 authorization method. It is designed to
22
+ # be run from console and requires user input.
23
+ #
24
+ # Tags: UserService.getUsersByStatement
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201302
29
+ PAGE_SIZE = 500
30
+ MAX_RETRIES = 3
31
+
32
+ def oauth2_handling()
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
+ # Forcing authorization. A callback URL and other parameters could be
41
+ # specified as parameter for OAuth method.
42
+ token = dfp.authorize({:oauth_callback => 'oob'}) do |oauth_url|
43
+ # For command-line we ask user to go to URL and type in code.
44
+ verification_code = get_verification_code(oauth_url)
45
+ # Return verification code from the block.
46
+ (verification_code.empty?) ? nil : verification_code
47
+ end
48
+
49
+ # Get the UserService.
50
+ user_service = dfp.service(:UserService, API_VERSION)
51
+
52
+ # Define initial values.
53
+ offset = 0
54
+ page = Hash.new
55
+ retry_count = 0
56
+
57
+ begin
58
+ # Create statement for one page with current offset.
59
+ statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
60
+
61
+ begin
62
+ # Get users by statement.
63
+ page = user_service.get_users_by_statement(statement)
64
+
65
+ # The second way to do OAuth authentication is to make a request and catch
66
+ # the OAuthVerificationRequired exception. Add the verification code to the
67
+ # credentials once acquired.
68
+ rescue AdsCommon::Errors::OAuth2VerificationRequired => e
69
+ if retry_count < MAX_RETRIES
70
+ verification_code = get_verification_code(e.oauth_url)
71
+ dfp.credential_handler.set_credential(
72
+ :oauth2_verification_code, verification_code)
73
+ retry_count += 1
74
+ retry
75
+ else
76
+ raise AdsCommon::Errors::AuthError, 'Failed to authenticate.'
77
+ end
78
+ end
79
+
80
+ if page[:results]
81
+ # Increase query offset by page size.
82
+ offset += PAGE_SIZE
83
+
84
+ # Get the start index for printout.
85
+ start_index = page[:start_index]
86
+
87
+ # Print details about each user in results page.
88
+ page[:results].each_with_index do |user, index|
89
+ puts "%d) User ID: %d, name: %s, email: %s" %
90
+ [index + start_index, user[:id], user[:name], user[:email]]
91
+ end
92
+ end
93
+ end while offset < page[:total_result_set_size]
94
+
95
+ # Print a footer
96
+ if page.include?(:total_result_set_size)
97
+ puts "Total number of users: %d" % page[:total_result_set_size]
98
+ end
99
+ end
100
+
101
+ # Misc util to get the verification code from the console.
102
+ def get_verification_code(url)
103
+ puts "Hit Auth error, please navigate to URL:\n\t%s" % url
104
+ print 'Log in and type the verification code: '
105
+ verification_code = gets.chomp
106
+ return verification_code
107
+ end
108
+
109
+ if __FILE__ == $0
110
+ begin
111
+ oauth2_handling()
112
+
113
+ # HTTP errors.
114
+ rescue AdsCommon::Errors::HttpError => e
115
+ puts "HTTP Error: %s" % e
116
+
117
+ # API errors.
118
+ rescue DfpApi::Errors::ApiException => e
119
+ puts "Message: %s" % e.message
120
+ puts 'Errors:'
121
+ e.errors.each_with_index do |error, index|
122
+ puts "\tError [%d]:" % (index + 1)
123
+ error.each do |field, value|
124
+ puts "\t\t%s: %s" % [field, value]
125
+ end
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2012, 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 shows how to use OAuth2.0 authorization method with JWT (Service
22
+ # Account).
23
+ #
24
+ # Tags: UserService.getUsersByStatement
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201302
29
+ PAGE_SIZE = 500
30
+
31
+ def oauth2_jwt_handling()
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
+ # Option 1: provide key filename as authentication -> oauth2_keyfile in the
40
+ # configuration file. No additional code is necessary.
41
+ # To provide a file name at runtime, use authorize:
42
+ # dfp.authorize({:oauth2_keyfile => key_filename})
43
+
44
+ # Option 2: retrieve key manually and create OpenSSL::PKCS12 object.
45
+ # key_filename = 'INSERT_FILENAME_HERE'
46
+ # key_secret = 'INSERT_SECRET_HERE'
47
+ # key_file_data = File.read(key_filename)
48
+ # key = OpenSSL::PKCS12.new(key_file_data, key_secret).key
49
+ # dfp.authorize({:oauth2_key => key})
50
+
51
+ # Now you can make API calls.
52
+
53
+ # Get the UserService.
54
+ user_service = dfp.service(:UserService, API_VERSION)
55
+
56
+ # Define initial values.
57
+ offset = 0
58
+ page = Hash.new
59
+
60
+ begin
61
+ # Create statement for one page with current offset.
62
+ statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
63
+
64
+ # Get users by statement.
65
+ page = user_service.get_users_by_statement(statement)
66
+
67
+ if page[:results]
68
+ # Increase query offset by page size.
69
+ offset += PAGE_SIZE
70
+
71
+ # Get the start index for printout.
72
+ start_index = page[:start_index]
73
+
74
+ # Print details about each user in results page.
75
+ page[:results].each_with_index do |user, index|
76
+ puts "%d) User ID: %d, name: %s, email: %s" %
77
+ [index + start_index, user[:id], user[:name], user[:email]]
78
+ end
79
+ end
80
+ end while offset < page[:total_result_set_size]
81
+
82
+ # Print a footer
83
+ if page.include?(:total_result_set_size)
84
+ puts "Total number of users: %d" % page[:total_result_set_size]
85
+ end
86
+ end
87
+
88
+ if __FILE__ == $0
89
+ begin
90
+ oauth2_jwt_handling()
91
+
92
+ # HTTP errors.
93
+ rescue AdsCommon::Errors::HttpError => e
94
+ puts "HTTP Error: %s" % e
95
+
96
+ # API errors.
97
+ rescue DfpApi::Errors::ApiException => e
98
+ puts "Message: %s" % e.message
99
+ puts 'Errors:'
100
+ e.errors.each_with_index do |error, index|
101
+ puts "\tError [%d]:" % (index + 1)
102
+ error.each do |field, value|
103
+ puts "\t\t%s: %s" % [field, value]
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example creates new companies. To determine which companies exist, run
22
+ # get_all_companies.rb.
23
+ #
24
+ # Tags: CompanyService.createCompanies
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201302
29
+ # Number of companies to create.
30
+ ITEM_COUNT = 5
31
+
32
+ def create_companies()
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 CompanyService.
41
+ company_service = dfp.service(:CompanyService, API_VERSION)
42
+
43
+ # Create an array to store local company objects.
44
+ companies = (1..ITEM_COUNT).map do |index|
45
+ {:name => "Advertiser #%d" % index, :type => 'ADVERTISER'}
46
+ end
47
+
48
+ # Create the companies on the server.
49
+ return_companies = company_service.create_companies(companies)
50
+
51
+ if return_companies
52
+ return_companies.each do |company|
53
+ puts "Company with ID: %d, name: %s and type: %s was created." %
54
+ [company[:id], company[:name], company[:type]]
55
+ end
56
+ else
57
+ raise 'No companies were created.'
58
+ end
59
+
60
+ end
61
+
62
+ if __FILE__ == $0
63
+ begin
64
+ create_companies()
65
+
66
+ # HTTP errors.
67
+ rescue AdsCommon::Errors::HttpError => e
68
+ puts "HTTP Error: %s" % e
69
+
70
+ # API errors.
71
+ rescue DfpApi::Errors::ApiException => e
72
+ puts "Message: %s" % e.message
73
+ puts 'Errors:'
74
+ e.errors.each_with_index do |error, index|
75
+ puts "\tError [%d]:" % (index + 1)
76
+ error.each do |field, value|
77
+ puts "\t\t%s: %s" % [field, value]
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example gets all companies. To create companies, run create_companies.rb.
22
+ #
23
+ # Tags: CompanyService.getCompaniesByStatement
24
+
25
+ require 'dfp_api'
26
+
27
+ API_VERSION = :v201302
28
+ PAGE_SIZE = 500
29
+
30
+ def get_all_companies()
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 CompanyService.
39
+ company_service = dfp.service(:CompanyService, API_VERSION)
40
+
41
+ # Define initial values.
42
+ offset = 0
43
+ page = {}
44
+
45
+ begin
46
+ # Create a statement to get one page with current offset.
47
+ statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
48
+
49
+ # Get companies by statement.
50
+ page = company_service.get_companies_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 company in results.
60
+ page[:results].each_with_index do |company, index|
61
+ puts "%d) Company ID: %d, name: '%s', type: '%s'" %
62
+ [index + start_index, company[:id], company[:name], company[:type]]
63
+ end
64
+ end
65
+ end while offset < page[:total_result_set_size]
66
+
67
+ # Print a footer.
68
+ if page.include?(:total_result_set_size)
69
+ puts "Total number of companies: %d" % page[:total_result_set_size]
70
+ end
71
+ end
72
+
73
+ if __FILE__ == $0
74
+ begin
75
+ get_all_companies()
76
+
77
+ # HTTP errors.
78
+ rescue AdsCommon::Errors::HttpError => e
79
+ puts "HTTP Error: %s" % e
80
+
81
+ # API errors.
82
+ rescue DfpApi::Errors::ApiException => e
83
+ puts "Message: %s" % e.message
84
+ puts 'Errors:'
85
+ e.errors.each_with_index do |error, index|
86
+ puts "\tError [%d]:" % (index + 1)
87
+ error.each do |field, value|
88
+ puts "\t\t%s: %s" % [field, value]
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example gets all companies that are advertisers. The statement retrieves
22
+ # up to the maximum page size limit of 500. To create companies, run
23
+ # create_companies.rb.
24
+ #
25
+ # Tags: CompanyService.getCompaniesByStatement
26
+
27
+ require 'dfp_api'
28
+
29
+ API_VERSION = :v201302
30
+
31
+ def get_companies_by_statement()
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 CompanyService.
40
+ company_service = dfp.service(:CompanyService, API_VERSION)
41
+
42
+ # Create a statement to only select companies that are advertisers, sorted by
43
+ # name.
44
+ statement = {
45
+ :query => 'WHERE type = :type ORDER BY name LIMIT 500',
46
+ :values => [
47
+ {:key => 'type',
48
+ :value => {:value => 'ADVERTISER', :xsi_type => 'TextValue'}}
49
+ ]
50
+ }
51
+
52
+ # Get companies by statement.
53
+ page = company_service.get_companies_by_statement(statement)
54
+
55
+ if page[:results]
56
+ # Print details about each company in results.
57
+ page[:results].each_with_index do |company, index|
58
+ puts "%d) [%d] name: %s, type: %s" %
59
+ [index, company[:id], company[:name], company[:type]]
60
+ end
61
+ end
62
+
63
+ # Print a footer.
64
+ if page.include?(:total_result_set_size)
65
+ puts "Total number of companies: %d" % page[:total_result_set_size]
66
+ end
67
+ end
68
+
69
+ if __FILE__ == $0
70
+ begin
71
+ get_companies_by_statement()
72
+
73
+ # HTTP errors.
74
+ rescue AdsCommon::Errors::HttpError => e
75
+ puts "HTTP Error: %s" % e
76
+
77
+ # API errors.
78
+ rescue DfpApi::Errors::ApiException => e
79
+ puts "Message: %s" % e.message
80
+ puts 'Errors:'
81
+ e.errors.each_with_index do |error, index|
82
+ puts "\tError [%d]:" % (index + 1)
83
+ error.each do |field, value|
84
+ puts "\t\t%s: %s" % [field, value]
85
+ end
86
+ end
87
+ end
88
+ end