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.
- data/ChangeLog +4 -0
- data/README.md +1 -3
- data/dfp_api.yml +1 -9
- data/examples/v201408/report_service/run_sales_report.rb +3 -3
- data/examples/v201411/report_service/run_sales_report.rb +3 -3
- data/examples/v201502/report_service/run_sales_report.rb +3 -3
- data/examples/{v201405 → v201505}/activity_group_service/create_activity_groups.rb +1 -1
- data/examples/{v201405 → v201505}/activity_group_service/get_active_activity_groups.rb +18 -27
- data/examples/{v201405 → v201505}/activity_group_service/get_all_activity_groups.rb +13 -23
- data/examples/{v201405 → v201505}/activity_group_service/update_activity_groups.rb +11 -9
- data/examples/{v201405 → v201505}/activity_service/create_activities.rb +1 -1
- data/examples/{v201405 → v201505}/activity_service/get_active_activities.rb +15 -27
- data/examples/{v201405 → v201505}/activity_service/get_all_activities.rb +10 -21
- data/examples/{v201405 → v201505}/activity_service/update_activities.rb +9 -7
- data/examples/{v201405 → v201505}/audience_segment_service/create_audience_segments.rb +1 -1
- data/examples/{v201405 → v201505}/audience_segment_service/get_all_audience_segments.rb +10 -19
- data/examples/{v201405 → v201505}/audience_segment_service/get_first_party_audience_segments.rb +14 -21
- data/examples/{v201405 → v201505}/audience_segment_service/populate_first_party_audience_segments.rb +16 -14
- data/examples/{v201405 → v201505}/audience_segment_service/update_audience_segments.rb +12 -11
- data/examples/{v201405 → v201505}/common/error_handling.rb +1 -1
- data/examples/{v201405 → v201505}/common/oauth2_jwt_handling.rb +9 -17
- data/examples/{v201405 → v201505}/common/setup_oauth2.rb +1 -1
- data/examples/{v201405 → v201505}/company_service/create_companies.rb +1 -1
- data/examples/{v201405 → v201505}/company_service/get_all_companies.rb +10 -18
- data/examples/{v201405 → v201505}/company_service/get_companies_by_statement.rb +21 -16
- data/examples/{v201405 → v201505}/company_service/update_companies.rb +13 -10
- data/examples/{v201405 → v201505}/contact_service/create_contacts.rb +1 -1
- data/examples/{v201405 → v201505}/contact_service/get_all_contacts.rb +11 -19
- data/examples/{v201405 → v201505}/contact_service/get_uninvited_contacts.rb +18 -22
- data/examples/{v201405 → v201505}/contact_service/update_contacts.rb +9 -7
- data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/create_content_metadata_key_hierarchies.rb +1 -1
- data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/delete_content_metadata_key_hierarchies.rb +11 -8
- data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/get_all_content_metadata_key_hierarchies.rb +8 -18
- data/examples/{v201405 → v201505}/content_metadata_key_hierarchy_service/update_content_metadata_key_hierarchies.rb +9 -7
- data/examples/{v201405 → v201505}/content_service/get_all_content.rb +9 -18
- data/examples/{v201405 → v201505}/content_service/get_content_by_category.rb +18 -28
- data/examples/{v201405 → v201505}/creative_service/copy_image_creatives.rb +7 -7
- data/examples/{v201405 → v201505}/creative_service/create_creative_from_template.rb +1 -1
- data/examples/{v201405 → v201505}/creative_service/create_creatives.rb +1 -1
- data/examples/{v201405 → v201505}/creative_service/create_custom_creative.rb +1 -1
- data/examples/{v201405 → v201505}/creative_service/get_all_creatives.rb +8 -17
- data/examples/{v201405 → v201505}/creative_service/get_creatives_by_statement.rb +18 -13
- data/examples/{v201405 → v201505}/creative_service/update_creatives.rb +16 -11
- data/examples/{v201405 → v201505}/creative_set_service/associate_creative_set_to_line_item.rb +1 -1
- data/examples/{v201405 → v201505}/creative_set_service/create_creative_set.rb +1 -1
- data/examples/{v201405 → v201505}/creative_set_service/get_all_creative_sets.rb +9 -17
- data/examples/{v201405 → v201505}/creative_set_service/get_creative_sets_by_statement.rb +20 -14
- data/examples/{v201405 → v201505}/creative_set_service/update_creative_sets.rb +10 -7
- data/examples/{v201405 → v201505}/creative_template_service/get_all_creative_templates.rb +9 -17
- data/examples/{v201405/creative_template_service/get_creative_templates_by_statement.rb → v201505/creative_template_service/get_system_defined_creative_templates.rb} +24 -13
- data/examples/{v201405 → v201505}/creative_wrapper_service/create_creative_wrappers.rb +1 -1
- data/examples/{v201405 → v201505}/creative_wrapper_service/deactivate_creative_wrapper.rb +9 -7
- data/examples/{v201405 → v201505}/creative_wrapper_service/get_all_creative_wrappers.rb +10 -18
- data/examples/{v201405 → v201505}/creative_wrapper_service/get_creative_wrappers_by_statement.rb +17 -12
- data/examples/{v201405 → v201505}/creative_wrapper_service/update_creative_wrappers.rb +10 -7
- data/examples/{v201405 → v201505}/custom_field_service/create_custom_field_options.rb +1 -1
- data/examples/{v201405 → v201505}/custom_field_service/create_custom_fields.rb +1 -1
- data/examples/{v201405 → v201505}/custom_field_service/deactivate_all_line_item_custom_fields.rb +13 -23
- data/examples/{v201405 → v201505}/custom_field_service/get_all_custom_fields.rb +11 -19
- data/examples/{v201405 → v201505}/custom_field_service/get_all_line_item_custom_fields.rb +19 -14
- data/examples/{v201405 → v201505}/custom_field_service/set_line_item_custom_field_value.rb +24 -19
- data/examples/{v201405 → v201505}/custom_field_service/update_custom_fields.rb +10 -7
- data/examples/{v201405 → v201505}/custom_targeting_service/create_custom_targeting_keys_and_values.rb +1 -1
- data/examples/{v201405 → v201505}/custom_targeting_service/delete_custom_targeting_keys.rb +16 -20
- data/examples/{v201405 → v201505}/custom_targeting_service/delete_custom_targeting_values.rb +23 -21
- data/examples/{v201405 → v201505}/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +15 -36
- data/examples/{v201405 → v201505}/custom_targeting_service/get_custom_targeting_keys_by_statement.rb +20 -16
- data/examples/{v201405 → v201505}/custom_targeting_service/get_custom_targeting_values_by_statement.rb +19 -15
- data/examples/{v201405 → v201505}/custom_targeting_service/update_custom_targeting_keys.rb +4 -3
- data/examples/{v201405 → v201505}/custom_targeting_service/update_custom_targeting_values.rb +34 -30
- data/examples/{v201405/forecast_service/get_forecast.rb → v201505/forecast_service/get_availability_forecast.rb} +38 -16
- data/examples/{v201405/forecast_service/get_forecast_by_id.rb → v201505/forecast_service/get_availability_forecast_for_line_item.rb} +18 -11
- data/examples/v201505/forecast_service/get_delivery_forecast_for_line_items.rb +81 -0
- data/examples/{v201405 → v201505}/inventory_service/create_ad_units.rb +1 -1
- data/examples/{v201405 → v201505}/inventory_service/create_mobile_ad_unit.rb +1 -1
- data/examples/{v201405 → v201505}/inventory_service/create_video_ad_unit.rb +1 -1
- data/examples/{v201405 → v201505}/inventory_service/deactivate_ad_units.rb +19 -23
- data/examples/{v201405 → v201505}/inventory_service/get_ad_unit_sizes.rb +7 -14
- data/examples/{v201405 → v201505}/inventory_service/get_ad_units_by_statement.rb +18 -13
- data/examples/{v201405 → v201505}/inventory_service/get_all_ad_units.rb +8 -17
- data/examples/{v201405 → v201505}/inventory_service/update_ad_units.rb +23 -11
- data/examples/{v201405 → v201505}/label_service/create_labels.rb +1 -1
- data/examples/{v201405 → v201505}/label_service/deactivate_labels.rb +15 -22
- data/examples/{v201405 → v201505}/label_service/get_all_labels.rb +9 -18
- data/examples/{v201405 → v201505}/label_service/get_labels_by_statement.rb +16 -11
- data/examples/{v201405 → v201505}/label_service/update_labels.rb +24 -26
- data/examples/{v201405 → v201505}/line_item_creative_association_service/create_licas.rb +1 -1
- data/examples/{v201405 → v201505}/line_item_creative_association_service/deactivate_licas.rb +15 -24
- data/examples/{v201405 → v201505}/line_item_creative_association_service/get_all_licas.rb +8 -17
- data/examples/{v201405 → v201505}/line_item_creative_association_service/get_licas_by_statement.rb +10 -8
- data/examples/{v201405 → v201505}/line_item_creative_association_service/update_licas.rb +16 -7
- data/examples/{v201405 → v201505}/line_item_service/activate_line_items.rb +13 -21
- data/examples/{v201405 → v201505}/line_item_service/create_line_items.rb +11 -4
- data/examples/{v201405 → v201505}/line_item_service/create_video_line_item.rb +13 -3
- data/examples/{v201405 → v201505}/line_item_service/get_all_line_items.rb +9 -17
- data/examples/{v201405 → v201505}/line_item_service/get_line_items_by_statement.rb +19 -17
- data/examples/{v201405 → v201505}/line_item_service/get_recently_updated_line_items.rb +19 -13
- data/examples/{v201405 → v201505}/line_item_service/target_custom_criteria.rb +9 -7
- data/examples/{v201405 → v201505}/line_item_service/update_line_items.rb +9 -9
- data/examples/{v201405 → v201505}/network_service/get_all_networks.rb +1 -1
- data/examples/{v201405 → v201505}/network_service/get_current_network.rb +1 -1
- data/examples/{v201405 → v201505}/network_service/make_test_network.rb +1 -1
- data/examples/{v201405 → v201505}/order_service/approve_orders.rb +16 -24
- data/examples/{v201405 → v201505}/order_service/create_orders.rb +1 -1
- data/examples/{v201405 → v201505}/order_service/get_all_orders.rb +8 -17
- data/examples/{v201405 → v201505}/order_service/get_orders_by_statement.rb +18 -14
- data/examples/{v201405 → v201505}/order_service/update_orders.rb +15 -7
- data/examples/{v201405 → v201505}/placement_service/create_placements.rb +4 -2
- data/examples/{v201405 → v201505}/placement_service/deactivate_placements.rb +14 -22
- data/examples/{v201405 → v201505}/placement_service/get_all_placements.rb +9 -17
- data/examples/{v201405 → v201505}/placement_service/get_placements_by_statement.rb +18 -13
- data/examples/{v201405 → v201505}/placement_service/update_placements.rb +16 -6
- data/examples/{v201405 → v201505}/publisher_query_language_service/fetch_match_tables.rb +8 -11
- data/examples/{v201405 → v201505}/publisher_query_language_service/get_all_line_items.rb +8 -9
- data/examples/{v201405 → v201505}/publisher_query_language_service/get_geo_targets.rb +10 -10
- data/examples/{v201405 → v201505}/publisher_query_language_service/get_line_items_named_like.rb +10 -10
- data/examples/{v201405 → v201505}/report_service/display_report.rb +1 -1
- data/examples/{v201405 → v201505}/report_service/download_report.rb +1 -1
- data/examples/{v201405 → v201505}/report_service/run_delivery_report.rb +6 -5
- data/examples/{v201405 → v201505}/report_service/run_inventory_report.rb +6 -5
- data/examples/{v201405 → v201505}/report_service/run_reach_report.rb +6 -5
- data/examples/{v201405/report_service/run_merged_delivery_report.rb → v201505/report_service/run_report_with_custom_fields.rb} +17 -18
- data/examples/{v201405 → v201505}/report_service/run_sales_report.rb +6 -5
- data/examples/{v201405 → v201505}/suggested_ad_unit_service/approve_all_suggested_ad_units.rb +25 -21
- data/examples/{v201405 → v201505}/suggested_ad_unit_service/get_all_suggested_ad_units.rb +9 -18
- data/examples/{v201405 → v201505}/suggested_ad_unit_service/get_suggested_ad_units_by_statement.rb +24 -21
- data/examples/{v201405 → v201505}/team_service/create_teams.rb +1 -1
- data/examples/{v201405 → v201505}/team_service/get_all_teams.rb +8 -17
- data/examples/{v201405 → v201505}/team_service/get_teams_by_statement.rb +15 -11
- data/examples/{v201405 → v201505}/team_service/update_teams.rb +4 -3
- data/examples/{v201405 → v201505}/user_service/create_users.rb +1 -1
- data/examples/{v201405 → v201505}/user_service/deactivate_users.rb +7 -7
- data/examples/{v201405 → v201505}/user_service/get_all_roles.rb +1 -1
- data/examples/{v201405 → v201505}/user_service/get_all_users.rb +8 -18
- data/examples/{v201405 → v201505}/user_service/get_current_user.rb +1 -1
- data/examples/{v201405 → v201505}/user_service/get_users_by_statement.rb +17 -12
- data/examples/{v201405 → v201505}/user_service/update_users.rb +15 -6
- data/examples/{v201405 → v201505}/user_team_association_service/create_user_team_associations.rb +1 -1
- data/examples/{v201405 → v201505}/user_team_association_service/delete_user_team_associations.rb +13 -21
- data/examples/{v201405 → v201505}/user_team_association_service/get_all_user_team_associations.rb +10 -17
- data/examples/{v201405 → v201505}/user_team_association_service/get_user_team_associations_by_statement.rb +20 -16
- data/examples/{v201405 → v201505}/user_team_association_service/update_user_team_associations.rb +8 -7
- data/lib/dfp_api/api_config.rb +27 -4
- data/lib/dfp_api/v201505/activity_group_service.rb +42 -0
- data/lib/dfp_api/v201505/activity_group_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/activity_service.rb +42 -0
- data/lib/dfp_api/v201505/activity_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/ad_exclusion_rule_service.rb +46 -0
- data/lib/dfp_api/v201505/ad_exclusion_rule_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/ad_rule_service.rb +46 -0
- data/lib/dfp_api/v201505/ad_rule_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/audience_segment_service.rb +46 -0
- data/lib/dfp_api/v201505/audience_segment_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/base_rate_service.rb +46 -0
- data/lib/dfp_api/v201505/base_rate_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/company_service.rb +42 -0
- data/lib/dfp_api/v201505/company_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/contact_service.rb +42 -0
- data/lib/dfp_api/v201505/contact_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/content_bundle_service.rb +46 -0
- data/lib/dfp_api/v201505/content_bundle_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/content_metadata_key_hierarchy_service.rb +46 -0
- data/lib/dfp_api/v201505/content_metadata_key_hierarchy_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/content_service.rb +38 -0
- data/lib/dfp_api/v201505/content_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/creative_service.rb +42 -0
- data/lib/dfp_api/v201505/creative_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/creative_set_service.rb +42 -0
- data/lib/dfp_api/v201505/creative_set_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/creative_template_service.rb +34 -0
- data/lib/dfp_api/v201505/creative_template_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/creative_wrapper_service.rb +46 -0
- data/lib/dfp_api/v201505/creative_wrapper_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/custom_field_service.rb +58 -0
- data/lib/dfp_api/v201505/custom_field_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/custom_targeting_service.rb +62 -0
- data/lib/dfp_api/v201505/custom_targeting_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/exchange_rate_service.rb +46 -0
- data/lib/dfp_api/v201505/exchange_rate_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/forecast_service.rb +46 -0
- data/lib/dfp_api/v201505/forecast_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/inventory_service.rb +50 -0
- data/lib/dfp_api/v201505/inventory_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/label_service.rb +46 -0
- data/lib/dfp_api/v201505/label_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/line_item_creative_association_service.rb +50 -0
- data/lib/dfp_api/v201505/line_item_creative_association_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/line_item_service.rb +46 -0
- data/lib/dfp_api/v201505/line_item_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/line_item_template_service.rb +34 -0
- data/lib/dfp_api/v201505/line_item_template_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/live_stream_event_service.rb +46 -0
- data/lib/dfp_api/v201505/live_stream_event_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/network_service.rb +46 -0
- data/lib/dfp_api/v201505/network_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/order_service.rb +46 -0
- data/lib/dfp_api/v201505/order_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/package_service.rb +46 -0
- data/lib/dfp_api/v201505/package_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/placement_service.rb +46 -0
- data/lib/dfp_api/v201505/placement_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/premium_rate_service.rb +42 -0
- data/lib/dfp_api/v201505/premium_rate_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/product_package_item_service.rb +46 -0
- data/lib/dfp_api/v201505/product_package_item_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/product_package_service.rb +46 -0
- data/lib/dfp_api/v201505/product_package_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/product_service.rb +42 -0
- data/lib/dfp_api/v201505/product_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/product_template_service.rb +46 -0
- data/lib/dfp_api/v201505/product_template_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/proposal_line_item_service.rb +46 -0
- data/lib/dfp_api/v201505/proposal_line_item_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/proposal_service.rb +46 -0
- data/lib/dfp_api/v201505/proposal_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/publisher_query_language_service.rb +34 -0
- data/lib/dfp_api/v201505/publisher_query_language_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/rate_card_service.rb +46 -0
- data/lib/dfp_api/v201505/rate_card_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/reconciliation_order_report_service.rb +38 -0
- data/lib/dfp_api/v201505/reconciliation_order_report_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/reconciliation_report_row_service.rb +38 -0
- data/lib/dfp_api/v201505/reconciliation_report_row_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/reconciliation_report_service.rb +38 -0
- data/lib/dfp_api/v201505/reconciliation_report_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/report_service.rb +46 -0
- data/lib/dfp_api/v201505/report_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/shared_ad_unit_service.rb +38 -0
- data/lib/dfp_api/v201505/shared_ad_unit_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/suggested_ad_unit_service.rb +38 -0
- data/lib/dfp_api/v201505/suggested_ad_unit_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/team_service.rb +42 -0
- data/lib/dfp_api/v201505/team_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/user_service.rb +54 -0
- data/lib/dfp_api/v201505/user_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/user_team_association_service.rb +46 -0
- data/lib/dfp_api/v201505/user_team_association_service_registry.rb +45 -0
- data/lib/dfp_api/v201505/workflow_request_service.rb +38 -0
- data/lib/dfp_api/v201505/workflow_request_service_registry.rb +45 -0
- data/lib/dfp_api/version.rb +1 -1
- data/test/bugs/test_issue_00000016.rb +1 -1
- data/test/dfp_api/test_config.yml +6 -5
- data/test/dfp_api/test_dfp_api.rb +32 -32
- metadata +234 -140
- data/examples/v201405/creative_template_service/get_creative_template.rb +0 -74
- data/examples/v201405/report_service/run_report_with_custom_fields.rb +0 -135
- data/examples/v201405/suggested_ad_unit_service/get_suggested_ad_unit.rb +0 -75
|
@@ -27,8 +27,9 @@
|
|
|
27
27
|
require 'date'
|
|
28
28
|
|
|
29
29
|
require 'dfp_api'
|
|
30
|
+
require 'dfp_api_statement'
|
|
30
31
|
|
|
31
|
-
API_VERSION = :
|
|
32
|
+
API_VERSION = :v201505
|
|
32
33
|
|
|
33
34
|
def get_recently_updated_line_items()
|
|
34
35
|
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
@@ -46,10 +47,10 @@ def get_recently_updated_line_items()
|
|
|
46
47
|
|
|
47
48
|
# Create statement object to only select line items belonging to the order and
|
|
48
49
|
# have been modified in the last 3 days.
|
|
49
|
-
statement =
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
statement = DfpApiStatement::FilterStatement.new(
|
|
51
|
+
'WHERE lastModifiedDateTime >= :date_time_string AND ' +
|
|
52
|
+
'orderId = :order_id ORDER BY id ASC',
|
|
53
|
+
[
|
|
53
54
|
{:key => 'order_id',
|
|
54
55
|
:value => {:value => order_id, :xsi_type => 'NumberValue'}},
|
|
55
56
|
{:key => 'date_time_string',
|
|
@@ -58,17 +59,22 @@ def get_recently_updated_line_items()
|
|
|
58
59
|
:xsi_type => 'TextValue'
|
|
59
60
|
}},
|
|
60
61
|
]
|
|
61
|
-
|
|
62
|
+
)
|
|
62
63
|
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
begin
|
|
65
|
+
# Get line items by statement.
|
|
66
|
+
page = line_item_service.get_line_items_by_statement(
|
|
67
|
+
statement.toStatement())
|
|
65
68
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
if page and page[:results]
|
|
70
|
+
page[:results].each_with_index do |line_item, index|
|
|
71
|
+
puts "%d) [%d] belongs to order ID %d, name: %s." % [
|
|
72
|
+
index + statement.offset, line_item[:id],
|
|
73
|
+
line_item[:order_id], line_item[:name]]
|
|
74
|
+
end
|
|
70
75
|
end
|
|
71
|
-
|
|
76
|
+
statement.offset += DfpApiStatement::SUGGESTED_PAGE_LIMIT
|
|
77
|
+
end while statement.offset < page[:total_result_set_size]
|
|
72
78
|
|
|
73
79
|
# Print a footer.
|
|
74
80
|
if page.include?(:total_result_set_size)
|
|
@@ -27,10 +27,11 @@
|
|
|
27
27
|
# LineItemService.updateLineItems
|
|
28
28
|
|
|
29
29
|
require 'dfp_api'
|
|
30
|
+
require 'dfp_api_statement'
|
|
30
31
|
|
|
31
32
|
require 'pp'
|
|
32
33
|
|
|
33
|
-
API_VERSION = :
|
|
34
|
+
API_VERSION = :v201505
|
|
34
35
|
PAGE_SIZE = 500
|
|
35
36
|
|
|
36
37
|
def target_custom_criteria()
|
|
@@ -91,16 +92,17 @@ def target_custom_criteria()
|
|
|
91
92
|
|
|
92
93
|
|
|
93
94
|
# Create a statement to only select a single line item.
|
|
94
|
-
statement =
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
statement = DfpApiStatement::FilterStatement.new(
|
|
96
|
+
'WHERE id = :id ORDER BY id ASC',
|
|
97
|
+
[
|
|
97
98
|
{:key => 'id',
|
|
98
99
|
:value => {:value => line_item_id, :xsi_type => 'NumberValue'}}
|
|
99
|
-
]
|
|
100
|
-
|
|
100
|
+
],
|
|
101
|
+
1
|
|
102
|
+
)
|
|
101
103
|
|
|
102
104
|
# Get line items by statement.
|
|
103
|
-
page = line_item_service.get_line_items_by_statement(statement)
|
|
105
|
+
page = line_item_service.get_line_items_by_statement(statement.toStatement())
|
|
104
106
|
|
|
105
107
|
if page[:results]
|
|
106
108
|
line_item = page[:results].first
|
|
@@ -18,15 +18,15 @@
|
|
|
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 delivery rate of all line items for an order
|
|
22
|
-
#
|
|
21
|
+
# This example updates the delivery rate of all line items for an order.
|
|
22
|
+
# To determine which line items exist, run get_all_line_items.rb.
|
|
23
23
|
# To determine which order exist, run get_all_orders.rb.
|
|
24
24
|
#
|
|
25
25
|
# Tags: LineItemService.getLineItemsByStatement, LineItemService.updateLineItems
|
|
26
26
|
|
|
27
27
|
require 'dfp_api'
|
|
28
28
|
|
|
29
|
-
API_VERSION = :
|
|
29
|
+
API_VERSION = :v201505
|
|
30
30
|
|
|
31
31
|
def update_line_items()
|
|
32
32
|
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
@@ -43,19 +43,19 @@ def update_line_items()
|
|
|
43
43
|
order_id = 'INSERT_ORDER_ID_HERE'.to_i
|
|
44
44
|
|
|
45
45
|
# Create a statement to get line items with even delivery rates.
|
|
46
|
-
statement =
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
statement = DfpApiStatement::FilterStatement.new(
|
|
47
|
+
'WHERE deliveryRateType = :delivery_rate_type AND ' +
|
|
48
|
+
'orderId = :order_id ',
|
|
49
|
+
[
|
|
50
50
|
{:key => 'delivery_rate_type',
|
|
51
51
|
:value => {:value => 'EVENLY', :xsi_type => 'TextValue'}},
|
|
52
52
|
{:key => 'order_id',
|
|
53
53
|
:value => {:value => order_id, :xsi_type => 'NumberValue'}}
|
|
54
54
|
]
|
|
55
|
-
|
|
55
|
+
)
|
|
56
56
|
|
|
57
57
|
# Get line items by statement.
|
|
58
|
-
page = line_item_service.get_line_items_by_statement(statement)
|
|
58
|
+
page = line_item_service.get_line_items_by_statement(statement.toStatement())
|
|
59
59
|
|
|
60
60
|
if page[:results]
|
|
61
61
|
line_items = page[:results]
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
require 'date'
|
|
28
28
|
require 'dfp_api'
|
|
29
29
|
|
|
30
|
-
API_VERSION = :
|
|
30
|
+
API_VERSION = :v201505
|
|
31
31
|
PAGE_SIZE = 500
|
|
32
32
|
|
|
33
33
|
def approve_orders()
|
|
@@ -42,52 +42,44 @@ def approve_orders()
|
|
|
42
42
|
order_service = dfp.service(:OrderService, API_VERSION)
|
|
43
43
|
|
|
44
44
|
# Create a statement text to select all eligible draft or pending orders.
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
:values => [
|
|
45
|
+
statement = DfpApiStatement::FilterStatement.new(
|
|
46
|
+
"WHERE status IN ('DRAFT', 'PENDING_APPROVAL') " +
|
|
47
|
+
"AND endDateTime >= :today AND isArchived = FALSE",
|
|
48
|
+
[
|
|
50
49
|
{:key => 'today',
|
|
51
50
|
:value => {:value => Date.today.strftime('%Y-%m-%dT%H:%M:%S'),
|
|
52
51
|
:xsi_type => 'TextValue'}}
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
]
|
|
53
|
+
)
|
|
55
54
|
|
|
56
|
-
# Define initial values.
|
|
57
|
-
offset = 0
|
|
58
|
-
page = {}
|
|
59
55
|
order_ids = []
|
|
60
56
|
|
|
61
57
|
begin
|
|
62
|
-
# Update the statement to get one page with current offset.
|
|
63
|
-
statement[:query] =
|
|
64
|
-
statement_text + " LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]
|
|
65
|
-
|
|
66
58
|
# Get orders by statement.
|
|
67
|
-
page = order_service.get_orders_by_statement(statement)
|
|
59
|
+
page = order_service.get_orders_by_statement(statement.toStatement())
|
|
68
60
|
|
|
69
61
|
if page[:results]
|
|
70
|
-
|
|
71
|
-
offset += PAGE_SIZE
|
|
72
|
-
|
|
73
|
-
page[:results].each do |order|
|
|
62
|
+
page[:results].each_with_index do |order, index|
|
|
74
63
|
puts ("%d) Order ID: %d, status: %s and name: %s will be " +
|
|
75
|
-
"approved.") % [
|
|
64
|
+
"approved.") % [index + statement.offset,
|
|
65
|
+
order[:id], order[:status],
|
|
76
66
|
order[:name]]
|
|
77
67
|
order_ids << order[:id]
|
|
78
68
|
end
|
|
79
69
|
end
|
|
80
|
-
|
|
70
|
+
statement.offset += DfpApiStatement::SUGGESTED_PAGE_LIMIT
|
|
71
|
+
end while statement.offset < page[:total_result_set_size]
|
|
81
72
|
|
|
82
73
|
puts "Number of orders to be approved: %d" % order_ids.size
|
|
83
74
|
|
|
84
75
|
if !order_ids.empty?
|
|
85
76
|
# Create statement for action.
|
|
86
|
-
statement =
|
|
77
|
+
statement = DfpApiStatement::FilterStatement.new(
|
|
78
|
+
"WHERE id IN (%s)" % order_ids.join(', '))
|
|
87
79
|
|
|
88
80
|
# Perform action.
|
|
89
81
|
result = order_service.perform_order_action(
|
|
90
|
-
{:xsi_type => 'ApproveAndOverbookOrders'}, statement)
|
|
82
|
+
{:xsi_type => 'ApproveAndOverbookOrders'}, statement.toStatement())
|
|
91
83
|
|
|
92
84
|
# Display results.
|
|
93
85
|
if result and result[:num_changes] > 0
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
# Tags: OrderService.getOrdersByStatement
|
|
24
24
|
|
|
25
25
|
require 'dfp_api'
|
|
26
|
+
require 'dfp_api_statement'
|
|
26
27
|
|
|
27
|
-
API_VERSION = :
|
|
28
|
-
PAGE_SIZE = 500
|
|
28
|
+
API_VERSION = :v201505
|
|
29
29
|
|
|
30
30
|
def get_all_orders()
|
|
31
31
|
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
@@ -38,32 +38,23 @@ def get_all_orders()
|
|
|
38
38
|
# Get the OrderService.
|
|
39
39
|
order_service = dfp.service(:OrderService, API_VERSION)
|
|
40
40
|
|
|
41
|
-
#
|
|
42
|
-
|
|
43
|
-
page = {}
|
|
41
|
+
# Create statement for one page with current offset.
|
|
42
|
+
statement = DfpApiStatement::FilterStatement.new('ORDER BY id ASC')
|
|
44
43
|
|
|
45
44
|
begin
|
|
46
|
-
# Create statement for one page with current offset.
|
|
47
|
-
statement = {:query => "LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]}
|
|
48
|
-
|
|
49
45
|
# Get orders by statement.
|
|
50
|
-
page = order_service.get_orders_by_statement(statement)
|
|
46
|
+
page = order_service.get_orders_by_statement(statement.toStatement())
|
|
51
47
|
|
|
52
48
|
if page[:results]
|
|
53
|
-
# Increase query offset by page size.
|
|
54
|
-
offset += PAGE_SIZE
|
|
55
|
-
|
|
56
|
-
# Get the start index for printout.
|
|
57
|
-
start_index = page[:start_index]
|
|
58
|
-
|
|
59
49
|
# Print details about each order in results page.
|
|
60
50
|
page[:results].each_with_index do |order, index|
|
|
61
51
|
puts "%d) Order ID: %d, name: %s, advertiser ID: %d" %
|
|
62
|
-
[index +
|
|
52
|
+
[index + statement.offset, order[:id], order[:name],
|
|
63
53
|
order[:advertiser_id]]
|
|
64
54
|
end
|
|
65
55
|
end
|
|
66
|
-
|
|
56
|
+
statement.offset += DfpApiStatement::SUGGESTED_PAGE_LIMIT
|
|
57
|
+
end while statement.offset < page[:total_result_set_size]
|
|
67
58
|
|
|
68
59
|
# Print a footer
|
|
69
60
|
if page.include?(:total_result_set_size)
|
|
@@ -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 all orders for a given advertiser.
|
|
22
|
-
# up to the maximum page size limit of 500. To create orders, run
|
|
21
|
+
# This example gets all orders for a given advertiser. To create orders, run
|
|
23
22
|
# create_orders.rb. To determine which companies are advertisers, run
|
|
24
23
|
# get_companies_by_statement.rb.
|
|
25
24
|
#
|
|
26
25
|
# Tags: OrderService.getOrdersByStatement
|
|
27
26
|
|
|
28
27
|
require 'dfp_api'
|
|
28
|
+
require 'dfp_api_statement'
|
|
29
29
|
|
|
30
|
-
API_VERSION = :
|
|
30
|
+
API_VERSION = :v201505
|
|
31
31
|
|
|
32
32
|
def get_orders_by_statement()
|
|
33
33
|
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
@@ -44,23 +44,27 @@ def get_orders_by_statement()
|
|
|
44
44
|
advertiser_id = 'INSERT_ADVERTISER_COMPANY_ID_HERE'.to_i
|
|
45
45
|
|
|
46
46
|
# Create a statement to only select orders for a given advertiser.
|
|
47
|
-
statement =
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
statement = DfpApiStatement::FilterStatement.new(
|
|
48
|
+
'WHERE advertiserId = :advertiser_id ORDER BY id ASC',
|
|
49
|
+
[
|
|
50
50
|
{:key => 'advertiser_id',
|
|
51
51
|
:value => {:value => advertiser_id, :xsi_type => 'NumberValue'}}
|
|
52
52
|
]
|
|
53
|
-
|
|
53
|
+
)
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
begin
|
|
56
|
+
# Get orders by statement.
|
|
57
|
+
page = order_service.get_orders_by_statement(statement.toStatement())
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
if page and page[:results]
|
|
60
|
+
page[:results].each_with_index do |order, index|
|
|
61
|
+
puts "%d) Order ID: %d, belongs to advertiser ID: %d, name: %s." % [
|
|
62
|
+
index + statement.offset,
|
|
63
|
+
order[:id], order[:advertiser_id], order[:name]]
|
|
64
|
+
end
|
|
62
65
|
end
|
|
63
|
-
|
|
66
|
+
statement.offset += DfpApiStatement::SUGGESTED_PAGE_LIMIT
|
|
67
|
+
end while statement.offset < page[:total_result_set_size]
|
|
64
68
|
|
|
65
69
|
# Print a footer.
|
|
66
70
|
if page.include?(:total_result_set_size)
|
|
@@ -18,14 +18,15 @@
|
|
|
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 notes of
|
|
21
|
+
# This example updates the notes of a specific order.
|
|
22
22
|
# To determine which orders exist, run get_all_orders.rb.
|
|
23
23
|
#
|
|
24
24
|
# Tags: OrderService.getOrdersByStatement, OrderService.updateOrders
|
|
25
25
|
|
|
26
26
|
require 'dfp_api'
|
|
27
|
+
require 'dfp_api_statement'
|
|
27
28
|
|
|
28
|
-
API_VERSION = :
|
|
29
|
+
API_VERSION = :v201505
|
|
29
30
|
|
|
30
31
|
def update_orders()
|
|
31
32
|
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
@@ -38,24 +39,31 @@ def update_orders()
|
|
|
38
39
|
# Get the OrderService.
|
|
39
40
|
order_service = dfp.service(:OrderService, API_VERSION)
|
|
40
41
|
|
|
42
|
+
order_id = 'INSERT_ORDER_ID_HERE'.to_i
|
|
43
|
+
|
|
41
44
|
# Create a statement to get first 500 orders.
|
|
42
|
-
statement =
|
|
45
|
+
statement = DfpApiStatement::FilterStatement.new(
|
|
46
|
+
'WHERE id = :id ORDER BY id ASC',
|
|
47
|
+
[
|
|
48
|
+
{:key => 'id',
|
|
49
|
+
:value => {:value => order_id, :xsi_type => 'NumberValue'}}
|
|
50
|
+
],
|
|
51
|
+
1
|
|
52
|
+
)
|
|
43
53
|
|
|
44
54
|
# Get orders by statement.
|
|
45
|
-
page = order_service.get_orders_by_statement(statement)
|
|
55
|
+
page = order_service.get_orders_by_statement(statement.toStatement())
|
|
46
56
|
|
|
47
57
|
if page[:results]
|
|
48
58
|
orders = page[:results]
|
|
49
59
|
|
|
50
|
-
|
|
60
|
+
orders.each do |order|
|
|
51
61
|
# Archived orders can not be updated.
|
|
52
62
|
if !order[:is_archived]
|
|
53
63
|
order[:notes] = 'Spoke to advertiser. All is well.'
|
|
54
64
|
# Workaround for issue #94.
|
|
55
65
|
order[:po_number] = "" if order[:po_number].nil?
|
|
56
|
-
new_orders << order
|
|
57
66
|
end
|
|
58
|
-
new_orders
|
|
59
67
|
end
|
|
60
68
|
|
|
61
69
|
# Update the orders on the server.
|
|
@@ -25,8 +25,9 @@
|
|
|
25
25
|
# Tags: InventoryService.getAdUnitsByStatement
|
|
26
26
|
|
|
27
27
|
require 'dfp_api'
|
|
28
|
+
require 'dfp_api_statement'
|
|
28
29
|
|
|
29
|
-
API_VERSION = :
|
|
30
|
+
API_VERSION = :v201505
|
|
30
31
|
|
|
31
32
|
def create_placements()
|
|
32
33
|
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
@@ -64,7 +65,8 @@ def create_placements()
|
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
# Get the first 500 ad units.
|
|
67
|
-
page = inventory_service.get_ad_units_by_statement(
|
|
68
|
+
page = inventory_service.get_ad_units_by_statement(
|
|
69
|
+
DfpApiStatement::FilterStatement.new('ORDER BY id ASC').toStatement())
|
|
68
70
|
|
|
69
71
|
# Separate the ad units by size.
|
|
70
72
|
if page and page[:results]
|
|
@@ -26,8 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
require 'dfp_api'
|
|
28
28
|
|
|
29
|
-
API_VERSION = :
|
|
30
|
-
PAGE_SIZE = 500
|
|
29
|
+
API_VERSION = :v201505
|
|
31
30
|
|
|
32
31
|
def deactivate_placements()
|
|
33
32
|
# Get DfpApi instance and load configuration from ~/dfp_api.yml.
|
|
@@ -40,50 +39,43 @@ def deactivate_placements()
|
|
|
40
39
|
# Get the PlacementService.
|
|
41
40
|
placement_service = dfp.service(:PlacementService, API_VERSION)
|
|
42
41
|
|
|
43
|
-
# Create statement
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
# Create statement to select active placements.
|
|
43
|
+
statement = DfpApiStatement::FilterStatement.new(
|
|
44
|
+
'WHERE status = :status',
|
|
45
|
+
[
|
|
47
46
|
{:key => 'status',
|
|
48
47
|
:value => {:value => 'ACTIVE', :xsi_type => 'TextValue'}}
|
|
49
48
|
]
|
|
50
|
-
|
|
49
|
+
)
|
|
51
50
|
|
|
52
51
|
# Define initial values.
|
|
53
|
-
offset = 0
|
|
54
|
-
page = {}
|
|
55
52
|
placement_ids = []
|
|
56
53
|
|
|
57
54
|
begin
|
|
58
|
-
# Modify the statement to get one page with current offset.
|
|
59
|
-
statement[:query] = statement_text +
|
|
60
|
-
" LIMIT %d OFFSET %d" % [PAGE_SIZE, offset]
|
|
61
|
-
|
|
62
55
|
# Get placements by statement.
|
|
63
|
-
page = placement_service.get_placements_by_statement(
|
|
56
|
+
page = placement_service.get_placements_by_statement(
|
|
57
|
+
statement.toStatement())
|
|
64
58
|
|
|
65
59
|
if page[:results]
|
|
66
|
-
|
|
67
|
-
offset += PAGE_SIZE
|
|
68
|
-
|
|
69
|
-
page[:results].each do |placement|
|
|
60
|
+
page[:results].each_with_index do |placement, index|
|
|
70
61
|
puts ("%d) Placement ID: %d, name: %s and status: %s will be " +
|
|
71
|
-
"deactivated.") % [
|
|
62
|
+
"deactivated.") % [index + statement.offset, placement[:id],
|
|
72
63
|
placement[:name], placement[:status]]
|
|
73
64
|
placement_ids << placement[:id]
|
|
74
65
|
end
|
|
75
66
|
end
|
|
76
|
-
end while offset < page[:total_result_set_size]
|
|
67
|
+
end while statement.offset < page[:total_result_set_size]
|
|
77
68
|
|
|
78
69
|
puts "Number of placements to be deactivated: %d" % placement_ids.size
|
|
79
70
|
|
|
80
71
|
if !placement_ids.empty?
|
|
81
72
|
# Create a statement for action.
|
|
82
|
-
statement =
|
|
73
|
+
statement = DfpApiStatement::FilterStatement.new(
|
|
74
|
+
"WHERE id IN (%s)" % placement_ids.join(', '))
|
|
83
75
|
|
|
84
76
|
# Perform action.
|
|
85
77
|
result = placement_service.perform_placement_action(
|
|
86
|
-
{:xsi_type => 'DeactivatePlacements'}, statement)
|
|
78
|
+
{:xsi_type => 'DeactivatePlacements'}, statement.toStatement())
|
|
87
79
|
|
|
88
80
|
# Display results.
|
|
89
81
|
if result and result[:num_changes] > 0
|