google-dfp-api 0.6.2 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. data/ChangeLog +3 -0
  2. data/README +15 -6
  3. data/dfp_api.yml +6 -5
  4. data/examples/v201302/activity_group_service/get_all_activity_groups.rb +0 -0
  5. data/examples/v201302/activity_service/get_all_activities.rb +0 -0
  6. data/examples/v201302/contact_service/get_uninvited_contacts.rb +0 -0
  7. data/examples/v201302/report_service/display_report.rb +0 -0
  8. data/examples/v201302/report_service/run_reach_report.rb +1 -1
  9. data/examples/v201306/activity_group_service/create_activity_groups.rb +94 -0
  10. data/examples/v201306/activity_group_service/get_active_activity_groups.rb +100 -0
  11. data/examples/v201306/activity_group_service/get_all_activity_groups.rb +95 -0
  12. data/examples/v201306/activity_group_service/update_activity_groups.rb +87 -0
  13. data/examples/v201306/activity_service/create_activities.rb +91 -0
  14. data/examples/v201306/activity_service/get_active_activities.rb +107 -0
  15. data/examples/v201306/activity_service/get_all_activities.rb +144 -0
  16. data/examples/v201306/activity_service/update_activities.rb +85 -0
  17. data/examples/v201306/audience_segment_service/get_all_audience_segments.rb +93 -0
  18. data/examples/v201306/common/error_handling.rb +76 -0
  19. data/examples/v201306/common/oauth2_handling.rb +128 -0
  20. data/examples/v201306/common/oauth2_jwt_handling.rb +107 -0
  21. data/examples/v201306/company_service/create_companies.rb +81 -0
  22. data/examples/v201306/company_service/get_all_companies.rb +92 -0
  23. data/examples/v201306/company_service/get_companies_by_statement.rb +88 -0
  24. data/examples/v201306/company_service/get_company.rb +72 -0
  25. data/examples/v201306/company_service/update_companies.rb +102 -0
  26. data/examples/v201306/contact_service/create_contacts.rb +95 -0
  27. data/examples/v201306/contact_service/get_all_contacts.rb +92 -0
  28. data/examples/v201306/contact_service/get_uninvited_contacts.rb +102 -0
  29. data/examples/v201306/contact_service/update_contacts.rb +84 -0
  30. data/examples/v201306/content_service/get_all_content.rb +94 -0
  31. data/examples/v201306/content_service/get_content_by_category.rb +143 -0
  32. data/examples/v201306/creative_service/copy_image_creatives.rb +115 -0
  33. data/examples/v201306/creative_service/create_creative_from_template.rb +139 -0
  34. data/examples/v201306/creative_service/create_creatives.rb +112 -0
  35. data/examples/v201306/creative_service/create_custom_creative.rb +104 -0
  36. data/examples/v201306/creative_service/get_all_creatives.rb +93 -0
  37. data/examples/v201306/creative_service/get_creative.rb +72 -0
  38. data/examples/v201306/creative_service/get_creatives_by_statement.rb +87 -0
  39. data/examples/v201306/creative_service/update_creatives.rb +96 -0
  40. data/examples/v201306/creative_set_service/associate_creative_set_to_line_item.rb +77 -0
  41. data/examples/v201306/creative_set_service/create_creative_set.rb +83 -0
  42. data/examples/v201306/creative_set_service/get_all_creative_sets.rb +94 -0
  43. data/examples/v201306/creative_set_service/get_creative_sets_by_statement.rb +90 -0
  44. data/examples/v201306/creative_set_service/update_creative_sets.rb +85 -0
  45. data/examples/v201306/creative_template_service/get_all_creative_templates.rb +94 -0
  46. data/examples/v201306/creative_template_service/get_creative_template.rb +74 -0
  47. data/examples/v201306/creative_template_service/get_creative_templates_by_statement.rb +80 -0
  48. data/examples/v201306/creative_wrapper_service/create_creative_wrappers.rb +89 -0
  49. data/examples/v201306/creative_wrapper_service/deactivate_creative_wrapper.rb +102 -0
  50. data/examples/v201306/creative_wrapper_service/get_all_creative_wrappers.rb +94 -0
  51. data/examples/v201306/creative_wrapper_service/get_creative_wrappers_by_statement.rb +88 -0
  52. data/examples/v201306/creative_wrapper_service/update_creative_wrappers.rb +86 -0
  53. data/examples/v201306/custom_field_service/create_custom_field_options.rb +87 -0
  54. data/examples/v201306/custom_field_service/create_custom_fields.rb +86 -0
  55. data/examples/v201306/custom_field_service/deactivate_all_line_item_custom_fields.rb +112 -0
  56. data/examples/v201306/custom_field_service/get_all_custom_fields.rb +102 -0
  57. data/examples/v201306/custom_field_service/get_all_line_item_custom_fields.rb +86 -0
  58. data/examples/v201306/custom_field_service/set_line_item_custom_field_value.rb +135 -0
  59. data/examples/v201306/custom_field_service/update_custom_fields.rb +84 -0
  60. data/examples/v201306/custom_targeting_service/create_custom_targeting_keys_and_values.rb +140 -0
  61. data/examples/v201306/custom_targeting_service/delete_custom_targeting_keys.rb +121 -0
  62. data/examples/v201306/custom_targeting_service/delete_custom_targeting_values.rb +125 -0
  63. data/examples/v201306/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +148 -0
  64. data/examples/v201306/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +92 -0
  65. data/examples/v201306/custom_targeting_service/get_custom_targeting_values_by_statement.rb +98 -0
  66. data/examples/v201306/custom_targeting_service/update_custom_targeting_keys.rb +94 -0
  67. data/examples/v201306/custom_targeting_service/update_custom_targeting_values.rb +106 -0
  68. data/examples/v201306/forecast_service/get_forecast.rb +107 -0
  69. data/examples/v201306/forecast_service/get_forecast_by_id.rb +80 -0
  70. data/examples/v201306/inventory_service/create_ad_units.rb +101 -0
  71. data/examples/v201306/inventory_service/create_mobile_ad_unit.rb +101 -0
  72. data/examples/v201306/inventory_service/create_video_ad_unit.rb +108 -0
  73. data/examples/v201306/inventory_service/deactivate_ad_units.rb +119 -0
  74. data/examples/v201306/inventory_service/get_ad_unit.rb +72 -0
  75. data/examples/v201306/inventory_service/get_ad_unit_sizes.rb +85 -0
  76. data/examples/v201306/inventory_service/get_ad_units_by_statement.rb +96 -0
  77. data/examples/v201306/inventory_service/get_all_ad_units.rb +93 -0
  78. data/examples/v201306/inventory_service/update_ad_units.rb +96 -0
  79. data/examples/v201306/label_service/create_labels.rb +83 -0
  80. data/examples/v201306/label_service/deactivate_labels.rb +118 -0
  81. data/examples/v201306/label_service/get_all_labels.rb +95 -0
  82. data/examples/v201306/label_service/get_label.rb +76 -0
  83. data/examples/v201306/label_service/get_labels_by_statement.rb +81 -0
  84. data/examples/v201306/label_service/update_labels.rb +102 -0
  85. data/examples/v201306/line_item_creative_association_service/create_licas.rb +94 -0
  86. data/examples/v201306/line_item_creative_association_service/deactivate_licas.rb +127 -0
  87. data/examples/v201306/line_item_creative_association_service/get_all_licas.rb +98 -0
  88. data/examples/v201306/line_item_creative_association_service/get_lica.rb +77 -0
  89. data/examples/v201306/line_item_creative_association_service/get_licas_by_statement.rb +91 -0
  90. data/examples/v201306/line_item_creative_association_service/update_licas.rb +91 -0
  91. data/examples/v201306/line_item_service/activate_line_items.rb +131 -0
  92. data/examples/v201306/line_item_service/create_line_items.rb +177 -0
  93. data/examples/v201306/line_item_service/create_mobile_line_item.rb +135 -0
  94. data/examples/v201306/line_item_service/create_video_line_item.rb +158 -0
  95. data/examples/v201306/line_item_service/get_all_line_items.rb +94 -0
  96. data/examples/v201306/line_item_service/get_line_item.rb +74 -0
  97. data/examples/v201306/line_item_service/get_line_items_by_statement.rb +93 -0
  98. data/examples/v201306/line_item_service/get_recently_updated_line_items.rb +98 -0
  99. data/examples/v201306/line_item_service/target_custom_criteria.rb +129 -0
  100. data/examples/v201306/line_item_service/update_line_items.rb +109 -0
  101. data/examples/v201306/network_service/get_all_networks.rb +74 -0
  102. data/examples/v201306/network_service/get_current_network.rb +66 -0
  103. data/examples/v201306/network_service/make_test_network.rb +79 -0
  104. data/examples/v201306/order_service/approve_orders.rb +122 -0
  105. data/examples/v201306/order_service/create_orders.rb +92 -0
  106. data/examples/v201306/order_service/get_all_orders.rb +93 -0
  107. data/examples/v201306/order_service/get_order.rb +74 -0
  108. data/examples/v201306/order_service/get_orders_by_statement.rb +90 -0
  109. data/examples/v201306/order_service/update_orders.rb +97 -0
  110. data/examples/v201306/placement_service/create_placements.rb +131 -0
  111. data/examples/v201306/placement_service/deactivate_placements.rb +118 -0
  112. data/examples/v201306/placement_service/get_all_placements.rb +93 -0
  113. data/examples/v201306/placement_service/get_placement.rb +74 -0
  114. data/examples/v201306/placement_service/get_placements_by_statement.rb +86 -0
  115. data/examples/v201306/placement_service/update_placements.rb +97 -0
  116. data/examples/v201306/publisher_query_language_service/get_all_cities.rb +104 -0
  117. data/examples/v201306/report_service/display_report.rb +81 -0
  118. data/examples/v201306/report_service/download_report.rb +81 -0
  119. data/examples/v201306/report_service/run_delivery_report.rb +103 -0
  120. data/examples/v201306/report_service/run_inventory_report.rb +96 -0
  121. data/examples/v201306/report_service/run_merged_delivery_report.rb +94 -0
  122. data/examples/v201306/report_service/run_reach_report.rb +87 -0
  123. data/examples/v201306/report_service/run_report_with_custom_fields.rb +135 -0
  124. data/examples/v201306/report_service/run_sales_report.rb +92 -0
  125. data/examples/v201306/suggested_ad_unit_service/approve_all_suggested_ad_units.rb +109 -0
  126. data/examples/v201306/suggested_ad_unit_service/get_all_suggested_ad_units.rb +96 -0
  127. data/examples/v201306/suggested_ad_unit_service/get_suggested_ad_unit.rb +75 -0
  128. data/examples/v201306/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +92 -0
  129. data/examples/v201306/team_service/create_teams.rb +83 -0
  130. data/examples/v201306/team_service/get_all_teams.rb +92 -0
  131. data/examples/v201306/team_service/get_team.rb +74 -0
  132. data/examples/v201306/team_service/get_teams_by_statement.rb +78 -0
  133. data/examples/v201306/team_service/update_teams.rb +97 -0
  134. data/examples/v201306/user_service/create_users.rb +89 -0
  135. data/examples/v201306/user_service/deactivate_users.rb +97 -0
  136. data/examples/v201306/user_service/get_all_roles.rb +73 -0
  137. data/examples/v201306/user_service/get_all_users.rb +93 -0
  138. data/examples/v201306/user_service/get_current_user.rb +66 -0
  139. data/examples/v201306/user_service/get_user.rb +73 -0
  140. data/examples/v201306/user_service/get_users_by_statement.rb +79 -0
  141. data/examples/v201306/user_service/update_users.rb +89 -0
  142. data/examples/v201306/user_team_association_service/create_user_team_associations.rb +86 -0
  143. data/examples/v201306/user_team_association_service/delete_user_team_associations.rb +111 -0
  144. data/examples/v201306/user_team_association_service/get_all_user_team_associations.rb +94 -0
  145. data/examples/v201306/user_team_association_service/get_user_team_association.rb +76 -0
  146. data/examples/v201306/user_team_association_service/get_user_team_associations_by_statement.rb +94 -0
  147. data/examples/v201306/user_team_association_service/update_user_team_associations.rb +102 -0
  148. data/lib/dfp_api.rb +3 -3
  149. data/lib/dfp_api/api_config.rb +24 -4
  150. data/lib/dfp_api/v201306/activity_group_service.rb +54 -0
  151. data/lib/dfp_api/v201306/activity_group_service_registry.rb +46 -0
  152. data/lib/dfp_api/v201306/activity_service.rb +54 -0
  153. data/lib/dfp_api/v201306/activity_service_registry.rb +46 -0
  154. data/lib/dfp_api/v201306/ad_rule_service.rb +58 -0
  155. data/lib/dfp_api/v201306/ad_rule_service_registry.rb +46 -0
  156. data/lib/dfp_api/v201306/audience_segment_service.rb +34 -0
  157. data/lib/dfp_api/v201306/audience_segment_service_registry.rb +46 -0
  158. data/lib/dfp_api/v201306/base_rate_service.rb +58 -0
  159. data/lib/dfp_api/v201306/base_rate_service_registry.rb +46 -0
  160. data/lib/dfp_api/v201306/company_service.rb +54 -0
  161. data/lib/dfp_api/v201306/company_service_registry.rb +46 -0
  162. data/lib/dfp_api/v201306/contact_service.rb +54 -0
  163. data/lib/dfp_api/v201306/contact_service_registry.rb +46 -0
  164. data/lib/dfp_api/v201306/content_bundle_service.rb +58 -0
  165. data/lib/dfp_api/v201306/content_bundle_service_registry.rb +46 -0
  166. data/lib/dfp_api/v201306/content_service.rb +38 -0
  167. data/lib/dfp_api/v201306/content_service_registry.rb +46 -0
  168. data/lib/dfp_api/v201306/creative_service.rb +54 -0
  169. data/lib/dfp_api/v201306/creative_service_registry.rb +46 -0
  170. data/lib/dfp_api/v201306/creative_set_service.rb +46 -0
  171. data/lib/dfp_api/v201306/creative_set_service_registry.rb +46 -0
  172. data/lib/dfp_api/v201306/creative_template_service.rb +38 -0
  173. data/lib/dfp_api/v201306/creative_template_service_registry.rb +46 -0
  174. data/lib/dfp_api/v201306/creative_wrapper_service.rb +58 -0
  175. data/lib/dfp_api/v201306/creative_wrapper_service_registry.rb +46 -0
  176. data/lib/dfp_api/v201306/custom_field_service.rb +78 -0
  177. data/lib/dfp_api/v201306/custom_field_service_registry.rb +46 -0
  178. data/lib/dfp_api/v201306/custom_targeting_service.rb +62 -0
  179. data/lib/dfp_api/v201306/custom_targeting_service_registry.rb +46 -0
  180. data/lib/dfp_api/v201306/forecast_service.rb +38 -0
  181. data/lib/dfp_api/v201306/forecast_service_registry.rb +46 -0
  182. data/lib/dfp_api/v201306/inventory_service.rb +62 -0
  183. data/lib/dfp_api/v201306/inventory_service_registry.rb +46 -0
  184. data/lib/dfp_api/v201306/label_service.rb +58 -0
  185. data/lib/dfp_api/v201306/label_service_registry.rb +46 -0
  186. data/lib/dfp_api/v201306/line_item_creative_association_service.rb +62 -0
  187. data/lib/dfp_api/v201306/line_item_creative_association_service_registry.rb +46 -0
  188. data/lib/dfp_api/v201306/line_item_service.rb +58 -0
  189. data/lib/dfp_api/v201306/line_item_service_registry.rb +46 -0
  190. data/lib/dfp_api/v201306/line_item_template_service.rb +34 -0
  191. data/lib/dfp_api/v201306/line_item_template_service_registry.rb +46 -0
  192. data/lib/dfp_api/v201306/network_service.rb +46 -0
  193. data/lib/dfp_api/v201306/network_service_registry.rb +46 -0
  194. data/lib/dfp_api/v201306/order_service.rb +58 -0
  195. data/lib/dfp_api/v201306/order_service_registry.rb +46 -0
  196. data/lib/dfp_api/v201306/placement_service.rb +58 -0
  197. data/lib/dfp_api/v201306/placement_service_registry.rb +46 -0
  198. data/lib/dfp_api/v201306/product_service.rb +50 -0
  199. data/lib/dfp_api/v201306/product_service_registry.rb +46 -0
  200. data/lib/dfp_api/v201306/product_template_service.rb +58 -0
  201. data/lib/dfp_api/v201306/product_template_service_registry.rb +46 -0
  202. data/lib/dfp_api/v201306/proposal_line_item_service.rb +58 -0
  203. data/lib/dfp_api/v201306/proposal_line_item_service_registry.rb +46 -0
  204. data/lib/dfp_api/v201306/proposal_service.rb +58 -0
  205. data/lib/dfp_api/v201306/proposal_service_registry.rb +46 -0
  206. data/lib/dfp_api/v201306/publisher_query_language_service.rb +34 -0
  207. data/lib/dfp_api/v201306/publisher_query_language_service_registry.rb +46 -0
  208. data/lib/dfp_api/v201306/rate_card_customization_service.rb +58 -0
  209. data/lib/dfp_api/v201306/rate_card_customization_service_registry.rb +46 -0
  210. data/lib/dfp_api/v201306/rate_card_service.rb +58 -0
  211. data/lib/dfp_api/v201306/rate_card_service_registry.rb +46 -0
  212. data/lib/dfp_api/v201306/reconciliation_order_report_service.rb +42 -0
  213. data/lib/dfp_api/v201306/reconciliation_order_report_service_registry.rb +46 -0
  214. data/lib/dfp_api/v201306/reconciliation_report_row_service.rb +38 -0
  215. data/lib/dfp_api/v201306/reconciliation_report_row_service_registry.rb +46 -0
  216. data/lib/dfp_api/v201306/reconciliation_report_service.rb +46 -0
  217. data/lib/dfp_api/v201306/reconciliation_report_service_registry.rb +46 -0
  218. data/lib/dfp_api/v201306/report_service.rb +46 -0
  219. data/lib/dfp_api/v201306/report_service_registry.rb +46 -0
  220. data/lib/dfp_api/v201306/suggested_ad_unit_service.rb +42 -0
  221. data/lib/dfp_api/v201306/suggested_ad_unit_service_registry.rb +46 -0
  222. data/lib/dfp_api/v201306/team_service.rb +54 -0
  223. data/lib/dfp_api/v201306/team_service_registry.rb +46 -0
  224. data/lib/dfp_api/v201306/user_service.rb +66 -0
  225. data/lib/dfp_api/v201306/user_service_registry.rb +46 -0
  226. data/lib/dfp_api/v201306/user_team_association_service.rb +58 -0
  227. data/lib/dfp_api/v201306/user_team_association_service_registry.rb +46 -0
  228. data/lib/dfp_api/v201306/workflow_action_service.rb +38 -0
  229. data/lib/dfp_api/v201306/workflow_action_service_registry.rb +46 -0
  230. data/lib/dfp_api/version.rb +1 -1
  231. data/test/bugs/test_issue_00000016.rb +3 -3
  232. data/test/dfp_api/test_dfp_api.rb +30 -6
  233. data/test/suite_unittests.rb +6 -6
  234. metadata +1218 -999
data/ChangeLog CHANGED
@@ -1,3 +1,6 @@
1
+ 0.6.3:
2
+ - Added support and examples for v201306.
3
+
1
4
  0.6.2:
2
5
  - Added support and examples for v201302.
3
6
 
data/README CHANGED
@@ -68,14 +68,18 @@ file. Alternatively, you can pass a configuration hash directly to the
68
68
  constructor:
69
69
  dfp = DfpApi::Api.new({
70
70
  :authentication => {
71
- :method => 'ClientLogin',
71
+ :method => 'OAuth2',
72
+ :oauth2_client_id: 'INSERT_OAUTH2_CLIENT_ID_HERE',
73
+ :oauth2_client_secret: 'INSERT_OAUTH2_CLIENT_SECRET_HERE',
72
74
  :application_name => 'Ruby DFP Sample',
73
- :email => 'user@domain.com',
74
- :password => 'PASSWORD',
75
75
  :network_code => 123456
76
76
  }
77
77
  })
78
78
 
79
+ To obtain OAuth2 client credentials, follow instructions on the wiki:
80
+
81
+ http://code.google.com/p/google-api-ads-ruby/wiki/OAuth2
82
+
79
83
  An example of configuration file is available as part of this library.
80
84
 
81
85
  *Note*: if you are using Ruby 1.8 you may need to include RubyGems to be able
@@ -112,7 +116,7 @@ Once the library object is created you can request services with a 'service'
112
116
  method:
113
117
  user_service = dfp.service(:UserService, <API_VERSION>)
114
118
 
115
- where <API_VERSION> is required version of DFP API as symbol, e.g. :v201206.
119
+ where <API_VERSION> is required version of DFP API as symbol, e.g. :v201306.
116
120
 
117
121
  Then you should be able to execute service methods:
118
122
 
@@ -146,7 +150,7 @@ Examples can be run by executing by running:
146
150
 
147
151
  from the "examples/<version>/<service_name>" directory i.e.
148
152
 
149
- $ cd examples/v201206/user_service
153
+ $ cd examples/v201306/user_service
150
154
  $ ruby get_all_users.rb
151
155
 
152
156
  Some examples require modification to be functional, like create_order example
@@ -222,12 +226,17 @@ Questions can be asked on forum
222
226
 
223
227
  http://groups.google.com/group/google-doubleclick-for-publishers-api/
224
228
 
229
+ Make sure to subscribe to our Google Plus page for API change announcements and
230
+ other news:
231
+
232
+ https://plus.google.com/+GoogleAdsDevelopers
233
+
225
234
 
226
235
  = Copyright/License Info
227
236
 
228
237
  == License
229
238
 
230
- Copyright 2011-2012, Google Inc. All Rights Reserved.
239
+ Copyright 2011-2013, Google Inc. All Rights Reserved.
231
240
 
232
241
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
233
242
  this file except in compliance with the License.
data/dfp_api.yml CHANGED
@@ -6,14 +6,14 @@
6
6
  :authentication:
7
7
  # Authentication method, methods currently supported: OAUTH2, OAUTH2_JWT,
8
8
  # ClientLogin.
9
- :method: ClientLogin
9
+ :method: OAuth2
10
10
 
11
11
  # Auth parameters for OAUTH2 method.
12
12
  # Set the OAuth2 client id and secret. Register your application here to
13
13
  # obtain these values:
14
14
  # https://code.google.com/apis/console#access
15
- #:oauth2_client_id: INSERT_OAUTH2_CLIENT_ID_HERE
16
- #:oauth2_client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE
15
+ :oauth2_client_id: INSERT_OAUTH2_CLIENT_ID_HERE
16
+ :oauth2_client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE
17
17
  # Optional, see: https://developers.google.com/accounts/docs/OAuth2WebServer
18
18
  #:oauth2_callback: INSERT_OAUTH2_CALLBACK_URL_HERE
19
19
  #:oauth2_state: INSERT_OAUTH2_STATE_HERE
@@ -31,8 +31,9 @@
31
31
  #:oauth2_prn: INSERT_OAUTH2_PRN_HERE
32
32
 
33
33
  # Auth parameters for ClientLogin method.
34
- :password: INSERT_PASSWORD_HERE
35
- :email: INSERT_EMAIL_HERE
34
+ # NOTE: ClientLogin method is deprecated, use OAuth2.0 instead.
35
+ #:password: INSERT_PASSWORD_HERE
36
+ #:email: INSERT_EMAIL_HERE
36
37
  # To manage your auth tokens manually, use the 'auth_token' property.
37
38
  #:auth_token: INSERT_AUTH_TOKEN_HERE
38
39
 
File without changes
@@ -1,4 +1,4 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
  #
3
3
  # Author:: api.davidtorres@gmail.com (David Torres)
4
4
  #
@@ -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 = :v201306
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 = :v201306
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 = :v201306
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 = :v201306
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