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,103 @@
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 runs a report similar to the "Orders report" on the DFP website
22
+ # with additional attributes and can filter to include just one order.
23
+ # To download the report see download_report.rb.
24
+ #
25
+ # Tags: ReportService.runReportJob, ReportService.getReportJob
26
+
27
+ require 'dfp_api'
28
+
29
+ API_VERSION = :v201302
30
+ MAX_RETRIES = 10
31
+ RETRY_INTERVAL = 30
32
+
33
+ def run_delivery_report()
34
+ # Get DfpApi instance and load configuration from ~/dfp_api.yml.
35
+ dfp = DfpApi::Api.new
36
+
37
+ # To enable logging of SOAP requests, set the log_level value to 'DEBUG' in
38
+ # the configuration file or provide your own logger:
39
+ # dfp.logger = Logger.new('dfp_xml.log')
40
+
41
+ # Get the ReportService.
42
+ report_service = dfp.service(:ReportService, API_VERSION)
43
+
44
+ # Specify the order ID to filter by.
45
+ order_id = 'INSERT_ORDER_ID_HERE'.to_i
46
+
47
+ # Create report query.
48
+ report_query = {
49
+ :date_range_type => 'LAST_MONTH',
50
+ :dimensions => ['ORDER_ID', 'ORDER_NAME'],
51
+ :dimension_attributes => ['ORDER_TRAFFICKER', 'ORDER_START_DATE_TIME',
52
+ 'ORDER_END_DATE_TIME'],
53
+ :columns => ['AD_SERVER_IMPRESSIONS', 'AD_SERVER_CLICKS', 'AD_SERVER_CTR',
54
+ 'AD_SERVER_CPM_AND_CPC_REVENUE', 'AD_SERVER_WITHOUT_CPD_AVERAGE_ECPM'],
55
+ # Create statement object to filter for an order.
56
+ :statement => {
57
+ :query => 'WHERE ORDER_ID = :order_id',
58
+ :values => [
59
+ {:key => 'order_id',
60
+ :value => {:value => order_id, :xsi_type => 'NumberValue'}}
61
+ ]
62
+ }
63
+ }
64
+
65
+ # Create report job.
66
+ report_job = {:report_query => report_query}
67
+
68
+ # Run report job.
69
+ report_job = report_service.run_report_job(report_job);
70
+
71
+ MAX_RETRIES.times do |retry_count|
72
+ # Get the report job status.
73
+ report_job = report_service.get_report_job(report_job[:id])
74
+
75
+ break unless report_job[:report_job_status] == 'IN_PROGRESS'
76
+ puts "Report with ID: %d is still running." % report_job[:id]
77
+ sleep(RETRY_INTERVAL)
78
+ end
79
+
80
+ puts "Report job with ID: %d finished with status %s." %
81
+ [report_job[:id], report_job[:report_job_status]]
82
+ end
83
+
84
+ if __FILE__ == $0
85
+ begin
86
+ run_delivery_report()
87
+
88
+ # HTTP errors.
89
+ rescue AdsCommon::Errors::HttpError => e
90
+ puts "HTTP Error: %s" % e
91
+
92
+ # API errors.
93
+ rescue DfpApi::Errors::ApiException => e
94
+ puts "Message: %s" % e.message
95
+ puts 'Errors:'
96
+ e.errors.each_with_index do |error, index|
97
+ puts "\tError [%d]:" % (index + 1)
98
+ error.each do |field, value|
99
+ puts "\t\t%s: %s" % [field, value]
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/env ruby
2
+ # Encoding: utf-8
3
+ #
4
+ # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
+ #
6
+ # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
7
+ #
8
+ # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
17
+ # implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ #
21
+ # This example runs a report equal to the "Whole network report" on the DFP
22
+ # website. To download the report see download_report.rb.
23
+ #
24
+ # Tags: ReportService.runReportJob, ReportService.getReportJob
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201302
29
+ MAX_RETRIES = 10
30
+ RETRY_INTERVAL = 30
31
+
32
+ def run_inventory_report()
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 ReportService.
41
+ report_service = dfp.service(:ReportService, API_VERSION)
42
+
43
+ # Create report query.
44
+ report_query = {
45
+ :date_range_type => 'LAST_WEEK',
46
+ :dimensions => ['DATE', 'AD_UNIT_NAME'],
47
+ :ad_unit_view => 'HIERARCHICAL',
48
+ :columns => [
49
+ 'AD_SERVER_IMPRESSIONS',
50
+ 'AD_SERVER_CLICKS',
51
+ 'DYNAMIC_ALLOCATION_INVENTORY_LEVEL_IMPRESSIONS',
52
+ 'DYNAMIC_ALLOCATION_INVENTORY_LEVEL_CLICKS',
53
+ 'TOTAL_INVENTORY_LEVEL_IMPRESSIONS',
54
+ 'TOTAL_INVENTORY_LEVEL_CPM_AND_CPC_REVENUE'
55
+ ]
56
+ }
57
+
58
+ # Create report job.
59
+ report_job = {:report_query => report_query}
60
+
61
+ # Run report job.
62
+ report_job = report_service.run_report_job(report_job);
63
+
64
+ MAX_RETRIES.times do |retry_count|
65
+ # Get the report job status.
66
+ report_job = report_service.get_report_job(report_job[:id])
67
+
68
+ break unless report_job[:report_job_status] == 'IN_PROGRESS'
69
+ puts "Report with ID: %d is still running." % report_job[:id]
70
+ sleep(RETRY_INTERVAL)
71
+ end
72
+
73
+ puts "Report job with ID: %d finished with status %s." %
74
+ [report_job[:id], report_job[:report_job_status]]
75
+ end
76
+
77
+ if __FILE__ == $0
78
+ begin
79
+ run_inventory_report()
80
+
81
+ # HTTP errors.
82
+ rescue AdsCommon::Errors::HttpError => e
83
+ puts "HTTP Error: %s" % e
84
+
85
+ # API errors.
86
+ rescue DfpApi::Errors::ApiException => e
87
+ puts "Message: %s" % e.message
88
+ puts 'Errors:'
89
+ e.errors.each_with_index do |error, index|
90
+ puts "\tError [%d]:" % (index + 1)
91
+ error.each do |field, value|
92
+ puts "\t\t%s: %s" % [field, value]
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,94 @@
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 runs a report that an upgraded publisher would use to include
22
+ # statistics before the upgrade. To download the report see download_report.rb.
23
+ #
24
+ # Tags: ReportService.runReportJob, ReportService.getReportJob
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201302
29
+ MAX_RETRIES = 10
30
+ RETRY_INTERVAL = 30
31
+
32
+ def run_merged_delivery_report()
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 ReportService.
41
+ report_service = dfp.service(:ReportService, API_VERSION)
42
+
43
+ # Create report query.
44
+ report_query = {
45
+ :date_range_type => 'LAST_MONTH',
46
+ :dimensions => ['ORDER_ID', 'ORDER_NAME'],
47
+ :columns => [
48
+ 'MERGED_AD_SERVER_IMPRESSIONS',
49
+ 'MERGED_AD_SERVER_CLICKS',
50
+ 'MERGED_AD_SERVER_CTR',
51
+ 'MERGED_AD_SERVER_CPM_AND_CPC_REVENUE',
52
+ 'MERGED_AD_SERVER_WITHOUT_CPD_AVERAGE_ECPM'
53
+ ]
54
+ }
55
+
56
+ # Create report job.
57
+ report_job = {:report_query => report_query}
58
+
59
+ # Run report job.
60
+ report_job = report_service.run_report_job(report_job);
61
+
62
+ MAX_RETRIES.times do |retry_count|
63
+ # Get the report job status.
64
+ report_job = report_service.get_report_job(report_job[:id])
65
+
66
+ break unless report_job[:report_job_status] == 'IN_PROGRESS'
67
+ puts "Report with ID: %d is still running." % report_job[:id]
68
+ sleep(RETRY_INTERVAL)
69
+ end
70
+
71
+ puts "Report job with ID: %d finished with status %s." %
72
+ [report_job[:id], report_job[:report_job_status]]
73
+ end
74
+
75
+ if __FILE__ == $0
76
+ begin
77
+ run_merged_delivery_report()
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,87 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Author:: api.davidtorres@gmail.com (David Torres)
4
+ #
5
+ # Copyright:: Copyright 2013, 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 runs a reach report. To download the report see
21
+ # download_report.rb.
22
+ #
23
+ # Tags: ReportService.runReportJob, ReportService.getReportJob
24
+
25
+ require 'dfp_api'
26
+
27
+ API_VERSION = :v201302
28
+ MAX_RETRIES = 10
29
+ RETRY_INTERVAL = 30
30
+
31
+ def run_reach_report()
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 ReportService.
40
+ report_service = dfp.service(:ReportService, API_VERSION)
41
+
42
+ # Create report query.
43
+ report_query = {
44
+ :date_range_type => 'REACH_LIFETIME',
45
+ :dimensions => ['LINE_ITEM_ID', 'LINE_ITEM_NAME'],
46
+ :columns => ['REACH_FREQUENCY', 'REACH_AVERAGE_REVENUE', 'REACH']
47
+ }
48
+
49
+ # Create report job.
50
+ report_job = {:report_query => report_query}
51
+
52
+ # Run report job.
53
+ report_job = report_service.run_report_job(report_job);
54
+
55
+ MAX_RETRIES.times do |retry_count|
56
+ # Get the report job status.
57
+ report_job = report_service.get_report_job(report_job[:id])
58
+
59
+ break unless report_job[:report_job_status] == 'IN_PROGRESS'
60
+ puts "Report with ID: %d is still running." % report_job[:id]
61
+ sleep(RETRY_INTERVAL)
62
+ end
63
+
64
+ puts "Report job with ID: %d finished with status %s." %
65
+ [report_job[:id], report_job[:report_job_status]]
66
+ end
67
+
68
+ if __FILE__ == $0
69
+ begin
70
+ run_reach_report()
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,135 @@
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 runs a report that includes custom fields found in the line items
22
+ # of an order. To download the report see download_report.rb.
23
+ #
24
+ # Tags: LineItemService.getLineItemByStatement
25
+ # Tags: ReportService.runReportJob, ReportService.getReportJob
26
+
27
+ require 'dfp_api'
28
+
29
+ API_VERSION = :v201302
30
+ PAGE_SIZE = 500
31
+ MAX_RETRIES = 10
32
+ RETRY_INTERVAL = 30
33
+
34
+ def run_report_with_custom_fields()
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 LineItemService.
43
+ line_item_service = dfp.service(:LineItemService, API_VERSION)
44
+
45
+ # Get the ReportService.
46
+ report_service = dfp.service(:ReportService, API_VERSION)
47
+
48
+ # Set the ID of the order to get line items from.
49
+ order_id = 'INSERT_ORDER_ID_HERE'.to_i
50
+
51
+ # Define initial values.
52
+ offset = 0
53
+ page = {}
54
+ custom_field_ids = []
55
+
56
+ # Create a statement to only select line items from a given order.
57
+ statement = {
58
+ :values => [
59
+ {:key => 'order_id',
60
+ :value => {:value => order_id, :xsi_type => 'NumberValue'}}
61
+ ]
62
+ }
63
+ query_text = 'WHERE orderId = :order_id LIMIT %d OFFSET %d'
64
+
65
+ begin
66
+ # Update the statement to get one page with current offset.
67
+ statement[:query] = query_text % [PAGE_SIZE, offset]
68
+
69
+ # Get line items by statement.
70
+ page = line_item_service.get_line_items_by_statement(statement)
71
+
72
+ if page[:results]
73
+ # Increase query offset by page size.
74
+ offset += PAGE_SIZE
75
+
76
+ # Get custom field IDs from the line items of an order.
77
+ page[:results].each do |line_item|
78
+ if line_item[:custom_field_values]
79
+ line_item[:custom_field_values].each do |value|
80
+ custom_field_ids |= [value[:custom_field_id]]
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end while offset < page[:total_result_set_size]
86
+
87
+ # Create report query.
88
+ statement[:query] = 'WHERE ORDER_ID = :order_id'
89
+ report_query = {
90
+ :date_range_type => 'LAST_MONTH',
91
+ :dimensions => ['LINE_ITEM_ID', 'LINE_ITEM_NAME'],
92
+ :custom_field_ids => custom_field_ids,
93
+ :columns => ['AD_SERVER_IMPRESSIONS'],
94
+ :statement => statement
95
+ }
96
+
97
+ # Create report job.
98
+ report_job = {:report_query => report_query}
99
+
100
+ # Run report job.
101
+ report_job = report_service.run_report_job(report_job);
102
+
103
+ MAX_RETRIES.times do |retry_count|
104
+ # Get the report job status.
105
+ report_job = report_service.get_report_job(report_job[:id])
106
+
107
+ break unless report_job[:report_job_status] == 'IN_PROGRESS'
108
+ puts "Report with ID: %d is still running." % report_job[:id]
109
+ sleep(RETRY_INTERVAL)
110
+ end
111
+
112
+ puts "Report job with ID: %d finished with status %s." %
113
+ [report_job[:id], report_job[:report_job_status]]
114
+ end
115
+
116
+ if __FILE__ == $0
117
+ begin
118
+ run_report_with_custom_fields()
119
+
120
+ # HTTP errors.
121
+ rescue AdsCommon::Errors::HttpError => e
122
+ puts "HTTP Error: %s" % e
123
+
124
+ # API errors.
125
+ rescue DfpApi::Errors::ApiException => e
126
+ puts "Message: %s" % e.message
127
+ puts 'Errors:'
128
+ e.errors.each_with_index do |error, index|
129
+ puts "\tError [%d]:" % (index + 1)
130
+ error.each do |field, value|
131
+ puts "\t\t%s: %s" % [field, value]
132
+ end
133
+ end
134
+ end
135
+ end