google-dfp-api 0.9.4 → 0.9.5

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 (247) hide show
  1. data/ChangeLog +4 -0
  2. data/README.md +1 -3
  3. data/dfp_api.yml +1 -9
  4. data/examples/v201408/report_service/run_sales_report.rb +3 -3
  5. data/examples/v201411/report_service/run_sales_report.rb +3 -3
  6. data/examples/v201502/report_service/run_sales_report.rb +3 -3
  7. data/examples/{v201405 → v201505}/activity_group_service/create_activity_groups.rb +1 -1
  8. data/examples/{v201405 → v201505}/activity_group_service/get_active_activity_groups.rb +18 -27
  9. data/examples/{v201405 → v201505}/activity_group_service/get_all_activity_groups.rb +13 -23
  10. data/examples/{v201405 → v201505}/activity_group_service/update_activity_groups.rb +11 -9
  11. data/examples/{v201405 → v201505}/activity_service/create_activities.rb +1 -1
  12. data/examples/{v201405 → v201505}/activity_service/get_active_activities.rb +15 -27
  13. data/examples/{v201405 → v201505}/activity_service/get_all_activities.rb +10 -21
  14. data/examples/{v201405 → v201505}/activity_service/update_activities.rb +9 -7
  15. data/examples/{v201405 → v201505}/audience_segment_service/create_audience_segments.rb +1 -1
  16. data/examples/{v201405 → v201505}/audience_segment_service/get_all_audience_segments.rb +10 -19
  17. data/examples/{v201405 → v201505}/audience_segment_service/get_first_party_audience_segments.rb +14 -21
  18. data/examples/{v201405 → v201505}/audience_segment_service/populate_first_party_audience_segments.rb +16 -14
  19. data/examples/{v201405 → v201505}/audience_segment_service/update_audience_segments.rb +12 -11
  20. data/examples/{v201405 → v201505}/common/error_handling.rb +1 -1
  21. data/examples/{v201405 → v201505}/common/oauth2_jwt_handling.rb +9 -17
  22. data/examples/{v201405 → v201505}/common/setup_oauth2.rb +1 -1
  23. data/examples/{v201405 → v201505}/company_service/create_companies.rb +1 -1
  24. data/examples/{v201405 → v201505}/company_service/get_all_companies.rb +10 -18
  25. data/examples/{v201405 → v201505}/company_service/get_companies_by_statement.rb +21 -16
  26. data/examples/{v201405 → v201505}/company_service/update_companies.rb +13 -10
  27. data/examples/{v201405 → v201505}/contact_service/create_contacts.rb +1 -1
  28. data/examples/{v201405 → v201505}/contact_service/get_all_contacts.rb +11 -19
  29. data/examples/{v201405 → v201505}/contact_service/get_uninvited_contacts.rb +18 -22
  30. data/examples/{v201405 → v201505}/contact_service/update_contacts.rb +9 -7
  31. data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/create_content_metadata_key_hierarchies.rb +1 -1
  32. data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/delete_content_metadata_key_hierarchies.rb +11 -8
  33. data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/get_all_content_metadata_key_hierarchies.rb +8 -18
  34. data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/update_content_metadata_key_hierarchies.rb +9 -7
  35. data/examples/{v201405 → v201505}/content_service/get_all_content.rb +9 -18
  36. data/examples/{v201405 → v201505}/content_service/get_content_by_category.rb +18 -28
  37. data/examples/{v201405 → v201505}/creative_service/copy_image_creatives.rb +7 -7
  38. data/examples/{v201405 → v201505}/creative_service/create_creative_from_template.rb +1 -1
  39. data/examples/{v201405 → v201505}/creative_service/create_creatives.rb +1 -1
  40. data/examples/{v201405 → v201505}/creative_service/create_custom_creative.rb +1 -1
  41. data/examples/{v201405 → v201505}/creative_service/get_all_creatives.rb +8 -17
  42. data/examples/{v201405 → v201505}/creative_service/get_creatives_by_statement.rb +18 -13
  43. data/examples/{v201405 → v201505}/creative_service/update_creatives.rb +16 -11
  44. data/examples/{v201405 → v201505}/creative_set_service/associate_creative_set_to_line_item.rb +1 -1
  45. data/examples/{v201405 → v201505}/creative_set_service/create_creative_set.rb +1 -1
  46. data/examples/{v201405 → v201505}/creative_set_service/get_all_creative_sets.rb +9 -17
  47. data/examples/{v201405 → v201505}/creative_set_service/get_creative_sets_by_statement.rb +20 -14
  48. data/examples/{v201405 → v201505}/creative_set_service/update_creative_sets.rb +10 -7
  49. data/examples/{v201405 → v201505}/creative_template_service/get_all_creative_templates.rb +9 -17
  50. data/examples/{v201405/creative_template_service/get_creative_templates_by_statement.rb → v201505/creative_template_service/get_system_defined_creative_templates.rb} +24 -13
  51. data/examples/{v201405 → v201505}/creative_wrapper_service/create_creative_wrappers.rb +1 -1
  52. data/examples/{v201405 → v201505}/creative_wrapper_service/deactivate_creative_wrapper.rb +9 -7
  53. data/examples/{v201405 → v201505}/creative_wrapper_service/get_all_creative_wrappers.rb +10 -18
  54. data/examples/{v201405 → v201505}/creative_wrapper_service/get_creative_wrappers_by_statement.rb +17 -12
  55. data/examples/{v201405 → v201505}/creative_wrapper_service/update_creative_wrappers.rb +10 -7
  56. data/examples/{v201405 → v201505}/custom_field_service/create_custom_field_options.rb +1 -1
  57. data/examples/{v201405 → v201505}/custom_field_service/create_custom_fields.rb +1 -1
  58. data/examples/{v201405 → v201505}/custom_field_service/deactivate_all_line_item_custom_fields.rb +13 -23
  59. data/examples/{v201405 → v201505}/custom_field_service/get_all_custom_fields.rb +11 -19
  60. data/examples/{v201405 → v201505}/custom_field_service/get_all_line_item_custom_fields.rb +19 -14
  61. data/examples/{v201405 → v201505}/custom_field_service/set_line_item_custom_field_value.rb +24 -19
  62. data/examples/{v201405 → v201505}/custom_field_service/update_custom_fields.rb +10 -7
  63. data/examples/{v201405 → v201505}/custom_targeting_service/create_custom_targeting_keys_and_values.rb +1 -1
  64. data/examples/{v201405 → v201505}/custom_targeting_service/delete_custom_targeting_keys.rb +16 -20
  65. data/examples/{v201405 → v201505}/custom_targeting_service/delete_custom_targeting_values.rb +23 -21
  66. data/examples/{v201405 → v201505}/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +15 -36
  67. data/examples/{v201405 → v201505}/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +20 -16
  68. data/examples/{v201405 → v201505}/custom_targeting_service/get_custom_targeting_values_by_statement.rb +19 -15
  69. data/examples/{v201405 → v201505}/custom_targeting_service/update_custom_targeting_keys.rb +4 -3
  70. data/examples/{v201405 → v201505}/custom_targeting_service/update_custom_targeting_values.rb +34 -30
  71. data/examples/{v201405/forecast_service/get_forecast.rb → v201505/forecast_service/get_availability_forecast.rb} +38 -16
  72. data/examples/{v201405/forecast_service/get_forecast_by_id.rb → v201505/forecast_service/get_availability_forecast_for_line_item.rb} +18 -11
  73. data/examples/v201505/forecast_service/get_delivery_forecast_for_line_items.rb +81 -0
  74. data/examples/{v201405 → v201505}/inventory_service/create_ad_units.rb +1 -1
  75. data/examples/{v201405 → v201505}/inventory_service/create_mobile_ad_unit.rb +1 -1
  76. data/examples/{v201405 → v201505}/inventory_service/create_video_ad_unit.rb +1 -1
  77. data/examples/{v201405 → v201505}/inventory_service/deactivate_ad_units.rb +19 -23
  78. data/examples/{v201405 → v201505}/inventory_service/get_ad_unit_sizes.rb +7 -14
  79. data/examples/{v201405 → v201505}/inventory_service/get_ad_units_by_statement.rb +18 -13
  80. data/examples/{v201405 → v201505}/inventory_service/get_all_ad_units.rb +8 -17
  81. data/examples/{v201405 → v201505}/inventory_service/update_ad_units.rb +23 -11
  82. data/examples/{v201405 → v201505}/label_service/create_labels.rb +1 -1
  83. data/examples/{v201405 → v201505}/label_service/deactivate_labels.rb +15 -22
  84. data/examples/{v201405 → v201505}/label_service/get_all_labels.rb +9 -18
  85. data/examples/{v201405 → v201505}/label_service/get_labels_by_statement.rb +16 -11
  86. data/examples/{v201405 → v201505}/label_service/update_labels.rb +24 -26
  87. data/examples/{v201405 → v201505}/line_item_creative_association_service/create_licas.rb +1 -1
  88. data/examples/{v201405 → v201505}/line_item_creative_association_service/deactivate_licas.rb +15 -24
  89. data/examples/{v201405 → v201505}/line_item_creative_association_service/get_all_licas.rb +8 -17
  90. data/examples/{v201405 → v201505}/line_item_creative_association_service/get_licas_by_statement.rb +10 -8
  91. data/examples/{v201405 → v201505}/line_item_creative_association_service/update_licas.rb +16 -7
  92. data/examples/{v201405 → v201505}/line_item_service/activate_line_items.rb +13 -21
  93. data/examples/{v201405 → v201505}/line_item_service/create_line_items.rb +11 -4
  94. data/examples/{v201405 → v201505}/line_item_service/create_video_line_item.rb +13 -3
  95. data/examples/{v201405 → v201505}/line_item_service/get_all_line_items.rb +9 -17
  96. data/examples/{v201405 → v201505}/line_item_service/get_line_items_by_statement.rb +19 -17
  97. data/examples/{v201405 → v201505}/line_item_service/get_recently_updated_line_items.rb +19 -13
  98. data/examples/{v201405 → v201505}/line_item_service/target_custom_criteria.rb +9 -7
  99. data/examples/{v201405 → v201505}/line_item_service/update_line_items.rb +9 -9
  100. data/examples/{v201405 → v201505}/network_service/get_all_networks.rb +1 -1
  101. data/examples/{v201405 → v201505}/network_service/get_current_network.rb +1 -1
  102. data/examples/{v201405 → v201505}/network_service/make_test_network.rb +1 -1
  103. data/examples/{v201405 → v201505}/order_service/approve_orders.rb +16 -24
  104. data/examples/{v201405 → v201505}/order_service/create_orders.rb +1 -1
  105. data/examples/{v201405 → v201505}/order_service/get_all_orders.rb +8 -17
  106. data/examples/{v201405 → v201505}/order_service/get_orders_by_statement.rb +18 -14
  107. data/examples/{v201405 → v201505}/order_service/update_orders.rb +15 -7
  108. data/examples/{v201405 → v201505}/placement_service/create_placements.rb +4 -2
  109. data/examples/{v201405 → v201505}/placement_service/deactivate_placements.rb +14 -22
  110. data/examples/{v201405 → v201505}/placement_service/get_all_placements.rb +9 -17
  111. data/examples/{v201405 → v201505}/placement_service/get_placements_by_statement.rb +18 -13
  112. data/examples/{v201405 → v201505}/placement_service/update_placements.rb +16 -6
  113. data/examples/{v201405 → v201505}/publisher_query_language_service/fetch_match_tables.rb +8 -11
  114. data/examples/{v201405 → v201505}/publisher_query_language_service/get_all_line_items.rb +8 -9
  115. data/examples/{v201405 → v201505}/publisher_query_language_service/get_geo_targets.rb +10 -10
  116. data/examples/{v201405 → v201505}/publisher_query_language_service/get_line_items_named_like.rb +10 -10
  117. data/examples/{v201405 → v201505}/report_service/display_report.rb +1 -1
  118. data/examples/{v201405 → v201505}/report_service/download_report.rb +1 -1
  119. data/examples/{v201405 → v201505}/report_service/run_delivery_report.rb +6 -5
  120. data/examples/{v201405 → v201505}/report_service/run_inventory_report.rb +6 -5
  121. data/examples/{v201405 → v201505}/report_service/run_reach_report.rb +6 -5
  122. data/examples/{v201405/report_service/run_merged_delivery_report.rb → v201505/report_service/run_report_with_custom_fields.rb} +17 -18
  123. data/examples/{v201405 → v201505}/report_service/run_sales_report.rb +6 -5
  124. data/examples/{v201405 → v201505}/suggested_ad_unit_service/approve_all_suggested_ad_units.rb +25 -21
  125. data/examples/{v201405 → v201505}/suggested_ad_unit_service/get_all_suggested_ad_units.rb +9 -18
  126. data/examples/{v201405 → v201505}/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +24 -21
  127. data/examples/{v201405 → v201505}/team_service/create_teams.rb +1 -1
  128. data/examples/{v201405 → v201505}/team_service/get_all_teams.rb +8 -17
  129. data/examples/{v201405 → v201505}/team_service/get_teams_by_statement.rb +15 -11
  130. data/examples/{v201405 → v201505}/team_service/update_teams.rb +4 -3
  131. data/examples/{v201405 → v201505}/user_service/create_users.rb +1 -1
  132. data/examples/{v201405 → v201505}/user_service/deactivate_users.rb +7 -7
  133. data/examples/{v201405 → v201505}/user_service/get_all_roles.rb +1 -1
  134. data/examples/{v201405 → v201505}/user_service/get_all_users.rb +8 -18
  135. data/examples/{v201405 → v201505}/user_service/get_current_user.rb +1 -1
  136. data/examples/{v201405 → v201505}/user_service/get_users_by_statement.rb +17 -12
  137. data/examples/{v201405 → v201505}/user_service/update_users.rb +15 -6
  138. data/examples/{v201405 → v201505}/user_team_association_service/create_user_team_associations.rb +1 -1
  139. data/examples/{v201405 → v201505}/user_team_association_service/delete_user_team_associations.rb +13 -21
  140. data/examples/{v201405 → v201505}/user_team_association_service/get_all_user_team_associations.rb +10 -17
  141. data/examples/{v201405 → v201505}/user_team_association_service/get_user_team_associations_by_statement.rb +20 -16
  142. data/examples/{v201405 → v201505}/user_team_association_service/update_user_team_associations.rb +8 -7
  143. data/lib/dfp_api/api_config.rb +27 -4
  144. data/lib/dfp_api/v201505/activity_group_service.rb +42 -0
  145. data/lib/dfp_api/v201505/activity_group_service_registry.rb +45 -0
  146. data/lib/dfp_api/v201505/activity_service.rb +42 -0
  147. data/lib/dfp_api/v201505/activity_service_registry.rb +45 -0
  148. data/lib/dfp_api/v201505/ad_exclusion_rule_service.rb +46 -0
  149. data/lib/dfp_api/v201505/ad_exclusion_rule_service_registry.rb +45 -0
  150. data/lib/dfp_api/v201505/ad_rule_service.rb +46 -0
  151. data/lib/dfp_api/v201505/ad_rule_service_registry.rb +45 -0
  152. data/lib/dfp_api/v201505/audience_segment_service.rb +46 -0
  153. data/lib/dfp_api/v201505/audience_segment_service_registry.rb +45 -0
  154. data/lib/dfp_api/v201505/base_rate_service.rb +46 -0
  155. data/lib/dfp_api/v201505/base_rate_service_registry.rb +45 -0
  156. data/lib/dfp_api/v201505/company_service.rb +42 -0
  157. data/lib/dfp_api/v201505/company_service_registry.rb +45 -0
  158. data/lib/dfp_api/v201505/contact_service.rb +42 -0
  159. data/lib/dfp_api/v201505/contact_service_registry.rb +45 -0
  160. data/lib/dfp_api/v201505/content_bundle_service.rb +46 -0
  161. data/lib/dfp_api/v201505/content_bundle_service_registry.rb +45 -0
  162. data/lib/dfp_api/v201505/content_metadata_key_hierarchy_service.rb +46 -0
  163. data/lib/dfp_api/v201505/content_metadata_key_hierarchy_service_registry.rb +45 -0
  164. data/lib/dfp_api/v201505/content_service.rb +38 -0
  165. data/lib/dfp_api/v201505/content_service_registry.rb +45 -0
  166. data/lib/dfp_api/v201505/creative_service.rb +42 -0
  167. data/lib/dfp_api/v201505/creative_service_registry.rb +45 -0
  168. data/lib/dfp_api/v201505/creative_set_service.rb +42 -0
  169. data/lib/dfp_api/v201505/creative_set_service_registry.rb +45 -0
  170. data/lib/dfp_api/v201505/creative_template_service.rb +34 -0
  171. data/lib/dfp_api/v201505/creative_template_service_registry.rb +45 -0
  172. data/lib/dfp_api/v201505/creative_wrapper_service.rb +46 -0
  173. data/lib/dfp_api/v201505/creative_wrapper_service_registry.rb +45 -0
  174. data/lib/dfp_api/v201505/custom_field_service.rb +58 -0
  175. data/lib/dfp_api/v201505/custom_field_service_registry.rb +45 -0
  176. data/lib/dfp_api/v201505/custom_targeting_service.rb +62 -0
  177. data/lib/dfp_api/v201505/custom_targeting_service_registry.rb +45 -0
  178. data/lib/dfp_api/v201505/exchange_rate_service.rb +46 -0
  179. data/lib/dfp_api/v201505/exchange_rate_service_registry.rb +45 -0
  180. data/lib/dfp_api/v201505/forecast_service.rb +46 -0
  181. data/lib/dfp_api/v201505/forecast_service_registry.rb +45 -0
  182. data/lib/dfp_api/v201505/inventory_service.rb +50 -0
  183. data/lib/dfp_api/v201505/inventory_service_registry.rb +45 -0
  184. data/lib/dfp_api/v201505/label_service.rb +46 -0
  185. data/lib/dfp_api/v201505/label_service_registry.rb +45 -0
  186. data/lib/dfp_api/v201505/line_item_creative_association_service.rb +50 -0
  187. data/lib/dfp_api/v201505/line_item_creative_association_service_registry.rb +45 -0
  188. data/lib/dfp_api/v201505/line_item_service.rb +46 -0
  189. data/lib/dfp_api/v201505/line_item_service_registry.rb +45 -0
  190. data/lib/dfp_api/v201505/line_item_template_service.rb +34 -0
  191. data/lib/dfp_api/v201505/line_item_template_service_registry.rb +45 -0
  192. data/lib/dfp_api/v201505/live_stream_event_service.rb +46 -0
  193. data/lib/dfp_api/v201505/live_stream_event_service_registry.rb +45 -0
  194. data/lib/dfp_api/v201505/network_service.rb +46 -0
  195. data/lib/dfp_api/v201505/network_service_registry.rb +45 -0
  196. data/lib/dfp_api/v201505/order_service.rb +46 -0
  197. data/lib/dfp_api/v201505/order_service_registry.rb +45 -0
  198. data/lib/dfp_api/v201505/package_service.rb +46 -0
  199. data/lib/dfp_api/v201505/package_service_registry.rb +45 -0
  200. data/lib/dfp_api/v201505/placement_service.rb +46 -0
  201. data/lib/dfp_api/v201505/placement_service_registry.rb +45 -0
  202. data/lib/dfp_api/v201505/premium_rate_service.rb +42 -0
  203. data/lib/dfp_api/v201505/premium_rate_service_registry.rb +45 -0
  204. data/lib/dfp_api/v201505/product_package_item_service.rb +46 -0
  205. data/lib/dfp_api/v201505/product_package_item_service_registry.rb +45 -0
  206. data/lib/dfp_api/v201505/product_package_service.rb +46 -0
  207. data/lib/dfp_api/v201505/product_package_service_registry.rb +45 -0
  208. data/lib/dfp_api/v201505/product_service.rb +42 -0
  209. data/lib/dfp_api/v201505/product_service_registry.rb +45 -0
  210. data/lib/dfp_api/v201505/product_template_service.rb +46 -0
  211. data/lib/dfp_api/v201505/product_template_service_registry.rb +45 -0
  212. data/lib/dfp_api/v201505/proposal_line_item_service.rb +46 -0
  213. data/lib/dfp_api/v201505/proposal_line_item_service_registry.rb +45 -0
  214. data/lib/dfp_api/v201505/proposal_service.rb +46 -0
  215. data/lib/dfp_api/v201505/proposal_service_registry.rb +45 -0
  216. data/lib/dfp_api/v201505/publisher_query_language_service.rb +34 -0
  217. data/lib/dfp_api/v201505/publisher_query_language_service_registry.rb +45 -0
  218. data/lib/dfp_api/v201505/rate_card_service.rb +46 -0
  219. data/lib/dfp_api/v201505/rate_card_service_registry.rb +45 -0
  220. data/lib/dfp_api/v201505/reconciliation_order_report_service.rb +38 -0
  221. data/lib/dfp_api/v201505/reconciliation_order_report_service_registry.rb +45 -0
  222. data/lib/dfp_api/v201505/reconciliation_report_row_service.rb +38 -0
  223. data/lib/dfp_api/v201505/reconciliation_report_row_service_registry.rb +45 -0
  224. data/lib/dfp_api/v201505/reconciliation_report_service.rb +38 -0
  225. data/lib/dfp_api/v201505/reconciliation_report_service_registry.rb +45 -0
  226. data/lib/dfp_api/v201505/report_service.rb +46 -0
  227. data/lib/dfp_api/v201505/report_service_registry.rb +45 -0
  228. data/lib/dfp_api/v201505/shared_ad_unit_service.rb +38 -0
  229. data/lib/dfp_api/v201505/shared_ad_unit_service_registry.rb +45 -0
  230. data/lib/dfp_api/v201505/suggested_ad_unit_service.rb +38 -0
  231. data/lib/dfp_api/v201505/suggested_ad_unit_service_registry.rb +45 -0
  232. data/lib/dfp_api/v201505/team_service.rb +42 -0
  233. data/lib/dfp_api/v201505/team_service_registry.rb +45 -0
  234. data/lib/dfp_api/v201505/user_service.rb +54 -0
  235. data/lib/dfp_api/v201505/user_service_registry.rb +45 -0
  236. data/lib/dfp_api/v201505/user_team_association_service.rb +46 -0
  237. data/lib/dfp_api/v201505/user_team_association_service_registry.rb +45 -0
  238. data/lib/dfp_api/v201505/workflow_request_service.rb +38 -0
  239. data/lib/dfp_api/v201505/workflow_request_service_registry.rb +45 -0
  240. data/lib/dfp_api/version.rb +1 -1
  241. data/test/bugs/test_issue_00000016.rb +1 -1
  242. data/test/dfp_api/test_config.yml +6 -5
  243. data/test/dfp_api/test_dfp_api.rb +32 -32
  244. metadata +234 -140
  245. data/examples/v201405/creative_template_service/get_creative_template.rb +0 -74
  246. data/examples/v201405/report_service/run_report_with_custom_fields.rb +0 -135
  247. data/examples/v201405/suggested_ad_unit_service/get_suggested_ad_unit.rb +0 -75
@@ -18,16 +18,17 @@
18
18
  # See the License for the specific language governing permissions and
19
19
  # limitations under the License.
20
20
  #
21
- # This example updates the display name of each custom targeting value up to
22
- # the first 500. To determine which custom targeting keys exist, run
21
+ # This example updates the display name of each custom targeting value belonging
22
+ # to a single key. To determine which custom targeting keys exist, run
23
23
  # get_all_custom_targeting_keys_and_values.rb.
24
24
  #
25
25
  # Tags: CustomTargetingService.getCustomTargetingValuesByStatement
26
26
  # Tags: CustomTargetingService.updateCustomTargetingValues
27
27
 
28
28
  require 'dfp_api'
29
+ require 'dfp_api_statement'
29
30
 
30
- API_VERSION = :v201405
31
+ API_VERSION = :v201505
31
32
 
32
33
  def update_custom_targeting_values()
33
34
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -44,44 +45,47 @@ def update_custom_targeting_values()
44
45
  custom_targeting_key_id = 'INSERT_CUSTOM_TARGETING_KEY_ID_HERE'.to_i
45
46
 
46
47
  # Create a statement to get first 500 custom targeting keys.
47
- statement = {
48
- :query => 'WHERE customTargetingKeyId = :key_id LIMIT 500',
48
+ statement = DfpApiStatement::FilterStatement.new(
49
+ :query => 'WHERE customTargetingKeyId = :key_id',
49
50
  :values => [
50
51
  {:key => 'key_id',
51
52
  :value => {:value => custom_targeting_key_id,
52
53
  :xsi_type => 'NumberValue'}
53
54
  }
54
55
  ]
55
- }
56
+ )
56
57
 
57
- # Get custom targeting keys by statement.
58
- page = custom_targeting_service.get_custom_targeting_values_by_statement(
59
- statement)
60
- values = page[:results]
61
-
62
- raise 'No targeting values found to update' if !values || values.empty?
58
+ begin
59
+ # Get custom targeting keys by statement.
60
+ page = custom_targeting_service.get_custom_targeting_values_by_statement(
61
+ statement.toStatement())
63
62
 
64
- # Update each local custom targeting values object by changing its display
65
- # name.
66
- values.each do |value|
67
- display_name = (value[:display_name].nil?) ?
68
- value[:name] : value[:display_name]
69
- value[:display_name] = display_name + ' (Deprecated)'
70
- end
63
+ if page[:results]
64
+ # Update each local custom targeting values object by changing its display
65
+ # name.
66
+ page[:results].each do |value|
67
+ display_name = (value[:display_name].nil?) ?
68
+ value[:name] : value[:display_name]
69
+ value[:display_name] = display_name + ' (Deprecated)'
70
+ end
71
71
 
72
- # Update the custom targeting keys on the server.
73
- result_values = custom_targeting_service.update_custom_targeting_values(values)
72
+ # Update the custom targeting keys on the server.
73
+ result_values = custom_targeting_service.update_custom_targeting_values(
74
+ values)
74
75
 
75
- if result_values
76
- # Print details about each value in results.
77
- result_values.each_with_index do |custom_targeting_value, index|
78
- puts ("%d) Custom targeting key with ID [%d], name: %s," +
79
- " displayName: %s was updated") % [index, custom_targeting_value[:id],
80
- custom_targeting_value[:name], custom_targeting_value[:display_name]]
76
+ if result_values
77
+ # Print details about each value in results.
78
+ result_values.each_with_index do |custom_targeting_value, index|
79
+ puts ("%d) Custom targeting key with ID [%d], name: %s," +
80
+ " displayName: %s was updated") % [
81
+ index + statement.offset, custom_targeting_value[:id],
82
+ custom_targeting_value[:name],
83
+ custom_targeting_value[:display_name]]
84
+ end
85
+ end
81
86
  end
82
- else
83
- puts 'No targeting keys values updated'
84
- end
87
+ statement.offset += DfpApiStatement::SUGGESTED_PAGE_LIMIT
88
+ end while statement.offset < page[:total_result_set_size]
85
89
  end
86
90
 
87
91
  if __FILE__ == $0
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
5
  #
6
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ # Copyright:: Copyright 2015, Google Inc. All Rights Reserved.
7
7
  #
8
8
  # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
9
  # you may not use this file except in compliance with the License.
@@ -21,13 +21,13 @@
21
21
  # This example gets a forecast for a prospective line item. To determine which
22
22
  # placements exist, run get_all_placements.rb.
23
23
  #
24
- # Tags: ForecastService.getForecast
24
+ # Tags: ForecastService.getAvailabilityForecast
25
25
 
26
26
  require 'dfp_api'
27
27
 
28
- API_VERSION = :v201405
28
+ API_VERSION = :v201505
29
29
 
30
- def get_forecast()
30
+ def get_availability_forecast()
31
31
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
32
32
  dfp = DfpApi::Api.new
33
33
 
@@ -35,21 +35,31 @@ def get_forecast()
35
35
  # the configuration file or provide your own logger:
36
36
  # dfp.logger = Logger.new('dfp_xml.log')
37
37
 
38
- # Get the CreativeService.
38
+ # Get the ForecastService.
39
39
  forecast_service = dfp.service(:ForecastService, API_VERSION)
40
40
 
41
- # Set the placement that the prospective line item will target.
42
- targeted_placement_ids = ['INSERT_PLACEMENT_ID_HERE'.to_i]
41
+ # Get the NetworkService.
42
+ network_service = dfp.service(:NetworkService, API_VERSION)
43
+
44
+ # Set the root ad unit to target the entire network.
45
+ root_ad_unit_id = (
46
+ network_service.get_current_network()[:effective_root_ad_unit_id].to_i)
43
47
 
44
48
  # Create targeting.
45
49
  targeting = {
46
- :inventory_targeting =>
47
- {:targeted_placement_ids => targeted_placement_ids}
50
+ :inventory_targeting => {
51
+ :targeted_ad_units => [
52
+ {
53
+ :include_descendants => True,
54
+ :ad_unit_id => root_ad_unit_id
55
+ }
56
+ ]
57
+ }
48
58
  }
49
59
 
50
60
  # Create the creative placeholder.
51
61
  creative_placeholder = {
52
- :size => {:width => 300, :height => 250, :is_aspect_ratio => false}
62
+ :size => {:width => 300, :height => 250, :is_aspect_ratio => false}
53
63
  }
54
64
 
55
65
  # Create prospective line item.
@@ -63,15 +73,27 @@ def get_forecast()
63
73
  :end_date_time => Time.utc(2014, 01, 01),
64
74
  # Set the line item to use 50% of the impressions.
65
75
  :primary_goal => {:goal => {
66
- :units => '50',
67
- :unit_type => 'IMPRESSIONS'}
68
- }
76
+ :units => '50',
77
+ :unit_type => 'IMPRESSIONS',
78
+ :goal_type => 'DAILY'}
79
+ },
69
80
  # Set the cost type to match the unit type.
70
81
  :cost_type => 'CPM'
71
82
  }
72
83
 
84
+ prospective_line_item = {
85
+ :line_item => line_item
86
+ }
87
+
88
+ # Set forecasting options.
89
+ forecast_options = {
90
+ :include_contending_line_items => True,
91
+ :include_targeting_criteria_breakdown => True,
92
+ }
93
+
73
94
  # Get forecast for the line item.
74
- forecast = forecast_service.get_forecast(line_item)
95
+ forecast = forecast_service.get_availability_forecast(
96
+ prospective_line_item, forecast_options)
75
97
 
76
98
  if forecast
77
99
  # Display results.
@@ -80,17 +102,17 @@ def get_forecast()
80
102
  unit_type = forecast[:unit_type].to_s.downcase
81
103
  puts "%.2f %s matched." % [matched, unit_type]
82
104
  puts "%.2f%% %s available." % [available_percent, unit_type]
105
+ puts "%d contending line items." % forecast[:contending_line_items].size
83
106
  if forecast[:possible_units]
84
107
  possible_percent = forecast[:possible_units] * 100.0 / matched
85
108
  puts "%.2f%% %s possible." % [possible_percent, unit_type]
86
109
  end
87
- puts "%d contending line items." % forecast[:contending_line_items].size
88
110
  end
89
111
  end
90
112
 
91
113
  if __FILE__ == $0
92
114
  begin
93
- get_forecast()
115
+ get_availability_forecast()
94
116
 
95
117
  # HTTP errors.
96
118
  rescue AdsCommon::Errors::HttpError => e
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # Author:: api.dklimkin@gmail.com (Danial Klimkin)
5
5
  #
6
- # Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
6
+ # Copyright:: Copyright 2015, Google Inc. All Rights Reserved.
7
7
  #
8
8
  # License:: Licensed under the Apache License, Version 2.0 (the "License");
9
9
  # you may not use this file except in compliance with the License.
@@ -18,16 +18,16 @@
18
18
  # See the License for the specific language governing permissions and
19
19
  # limitations under the License.
20
20
  #
21
- # This example gets a forecast for an existing line item. To determine which
22
- # line items exist, run get_all_line_items.rb.
21
+ # This example gets a forecast for a prospective line item. To determine which
22
+ # placements exist, run get_all_placements.rb.
23
23
  #
24
- # Tags: ForecastService.getForecastById
24
+ # Tags: ForecastService.getAvailabilityForecastById
25
25
 
26
26
  require 'dfp_api'
27
27
 
28
- API_VERSION = :v201405
28
+ API_VERSION = :v201505
29
29
 
30
- def get_forecast_by_id()
30
+ def get_availability_forecast_for_line_item()
31
31
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
32
32
  dfp = DfpApi::Api.new
33
33
 
@@ -35,14 +35,21 @@ def get_forecast_by_id()
35
35
  # the configuration file or provide your own logger:
36
36
  # dfp.logger = Logger.new('dfp_xml.log')
37
37
 
38
- # Get the CreativeService.
38
+ # Get the ForecastService.
39
39
  forecast_service = dfp.service(:ForecastService, API_VERSION)
40
40
 
41
41
  # Set the line item to get a forecast for.
42
42
  line_item_id = 'INSERT_LINE_ITEM_ID_HERE'.to_i
43
43
 
44
- # Get forecast for line item.
45
- forecast = forecast_service.get_forecast_by_id(line_item_id)
44
+ # Set forecasting options.
45
+ forecast_options = {
46
+ :include_contending_line_items => True,
47
+ :include_targeting_criteria_breakdown => True,
48
+ }
49
+
50
+ # Get forecast for the line item.
51
+ forecast = forecast_service.get_availability_forecast_by_id(
52
+ line_item_id, forecast_options)
46
53
 
47
54
  if forecast
48
55
  # Display results.
@@ -51,17 +58,17 @@ def get_forecast_by_id()
51
58
  unit_type = forecast[:unit_type].to_s.downcase
52
59
  puts "%.2f %s matched." % [matched, unit_type]
53
60
  puts "%.2f%% %s available." % [available_percent, unit_type]
61
+ puts "%d contending line items." % forecast[:contending_line_items].size
54
62
  if forecast[:possible_units]
55
63
  possible_percent = forecast[:possible_units] * 100.0 / matched
56
64
  puts "%.2f%% %s possible." % [possible_percent, unit_type]
57
65
  end
58
- puts "%d contending line items." % forecast[:contending_line_items].size
59
66
  end
60
67
  end
61
68
 
62
69
  if __FILE__ == $0
63
70
  begin
64
- get_forecast_by_id()
71
+ get_availability_forecast_for_line_item()
65
72
 
66
73
  # HTTP errors.
67
74
  rescue AdsCommon::Errors::HttpError => e
@@ -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 2015, 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 a delivery forecast for multiple line items. To determine
22
+ # which placements exist, run get_all_placements.rb.
23
+ #
24
+ # Tags: ForecastService.getDeliveryForecastByIds
25
+
26
+ require 'dfp_api'
27
+
28
+ API_VERSION = :v201505
29
+
30
+ def get_delivery_forecast_for_line_items()
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 ForecastService.
39
+ forecast_service = dfp.service(:ForecastService, API_VERSION)
40
+
41
+ # Set the line items to get a forecast for.
42
+ line_item_id1 = 'INSERT_LINE_ITEM_ID_1_HERE'.to_i
43
+ line_item_id2 = 'INSERT_LINE_ITEM_ID_2_HERE'.to_i
44
+
45
+ # Get forecast for the line item.
46
+ forecast = forecast_service.get_delivery_forecast_by_ids(
47
+ [line_item_id1, line_item_id2], nil)
48
+
49
+ if forecast
50
+ forecast[:line_item_delivery_forecasts].each do |single_forecast|
51
+ # Display results.
52
+ unit_type = single_forecast[:unit_type]
53
+ puts ('Forecast for line item %d:\n\t%d %s matched\n\t%d %s ' +
54
+ 'delivered\n\t%d %s predicted\n') % [
55
+ single_forecast[:line_item_id], single_forecast[:matched_units],
56
+ unit_type, single_forecast[:delivered_units], unit_type,
57
+ single_forecast[:predicted_delivery_units], unit_type]
58
+ end
59
+ end
60
+ end
61
+
62
+ if __FILE__ == $0
63
+ begin
64
+ get_delivery_forecast_for_line_items()
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
@@ -26,7 +26,7 @@
26
26
 
27
27
  require 'dfp_api'
28
28
 
29
- API_VERSION = :v201405
29
+ API_VERSION = :v201505
30
30
  # Number of ad units to create.
31
31
  ITEM_COUNT = 5
32
32
 
@@ -28,7 +28,7 @@
28
28
 
29
29
  require 'dfp_api'
30
30
 
31
- API_VERSION = :v201405
31
+ API_VERSION = :v201505
32
32
 
33
33
  def create_mobile_ad_unit()
34
34
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -28,7 +28,7 @@
28
28
 
29
29
  require 'dfp_api'
30
30
 
31
- API_VERSION = :v201405
31
+ API_VERSION = :v201505
32
32
 
33
33
  def create_video_ad_unit()
34
34
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -25,9 +25,9 @@
25
25
  # Tags: InventoryService.performAdUnitAction
26
26
 
27
27
  require 'dfp_api'
28
+ require 'dfp_api_statement'
28
29
 
29
- API_VERSION = :v201405
30
- PAGE_SIZE = 500
30
+ API_VERSION = :v201505
31
31
 
32
32
  def deactivate_ad_units()
33
33
  # Get DfpApi instance and load configuration from ~/dfp_api.yml.
@@ -41,50 +41,46 @@ def deactivate_ad_units()
41
41
  inventory_service = dfp.service(:InventoryService, API_VERSION)
42
42
 
43
43
  # Create statement text to select active ad units.
44
- statement_text = 'WHERE status = :status'
45
- statement = {
46
- :values => [
44
+ statement = DfpApiStatement::FilterStatement.new(
45
+ 'WHERE status = :status',
46
+ [
47
47
  {:key => 'status',
48
48
  :value => {:value => 'ACTIVE', :xsi_type => 'TextValue'}}
49
49
  ]
50
- }
50
+ )
51
51
 
52
- # Define initial values.
53
- offset = 0
54
- page = {}
55
52
  ad_unit_ids = []
56
53
 
57
54
  begin
58
- # Create a statement to get one page with the current offset.
59
- statement[:query] = statement_text +
60
- " LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]
61
-
62
55
  # Get ad units by statement.
63
- page = inventory_service.get_ad_units_by_statement(statement)
56
+ page = inventory_service.get_ad_units_by_statement(statement.toStatement())
64
57
 
65
58
  if page[:results]
66
- # Increase query offset by page size.
67
- offset += PAGE_SIZE
68
-
69
- page[:results].each do |ad_unit|
59
+ page[:results].each_with_index do |ad_unit, index|
70
60
  puts ("%d) Ad unit with ID: %d, status: %s and name: %s will be " +
71
- "deactivated.") % [ad_unit_ids.size, ad_unit[:id],
61
+ "deactivated.") % [index + statement.offset, ad_unit[:id],
72
62
  ad_unit[:status], ad_unit[:name]]
73
63
  ad_unit_ids << ad_unit[:id]
74
64
  end
75
65
  end
76
- end while offset < page[:total_result_set_size]
66
+ statement.offset += DfpApiStatement::SUGGESTED_PAGE_LIMIT
67
+ end while statement.offset < page[:total_result_set_size]
77
68
 
78
69
  puts "Number of ad units to be deactivated: %d" % ad_unit_ids.size
79
70
 
80
71
  if !ad_unit_ids.empty?
81
72
  # Modify statement for action. Note, the values are still present.
82
- statement[:query] = statement_text + " AND id IN (%s)" %
83
- ad_unit_ids.join(', ')
73
+ statement = DfpApiStatement::FilterStatement.new(
74
+ "WHERE status = :status AND id in (%s)" % ad_unit_ids.join(', '),
75
+ [
76
+ {:key => 'status',
77
+ :value => {:value => 'ACTIVE', :xsi_type => 'TextValue'}}
78
+ ]
79
+ )
84
80
 
85
81
  # Perform action.
86
82
  result = inventory_service.perform_ad_unit_action(
87
- {:xsi_type => 'DeactivateAdUnits'}, statement)
83
+ {:xsi_type => 'DeactivateAdUnits'}, statement.toStatement())
88
84
 
89
85
  # Display results.
90
86
  if result and result[:num_changes] > 0