google-adwords-api 1.4.0 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/COPYING +0 -0
- data/ChangeLog +10 -0
- data/README.md +9 -236
- data/lib/adwords_api.rb +2 -234
- metadata +8 -440
- data/adwords_api.yml +0 -53
- data/lib/adwords_api/api_config.rb +0 -333
- data/lib/adwords_api/batch_job_utils.rb +0 -334
- data/lib/adwords_api/credential_handler.rb +0 -96
- data/lib/adwords_api/errors.rb +0 -110
- data/lib/adwords_api/incremental_upload_helper.rb +0 -75
- data/lib/adwords_api/query_utils/query_builder.rb +0 -41
- data/lib/adwords_api/query_utils/report_query.rb +0 -30
- data/lib/adwords_api/query_utils/report_query_builder.rb +0 -82
- data/lib/adwords_api/query_utils/service_query.rb +0 -62
- data/lib/adwords_api/query_utils/service_query_builder.rb +0 -83
- data/lib/adwords_api/query_utils/where_builder.rb +0 -97
- data/lib/adwords_api/report_header_handler.rb +0 -80
- data/lib/adwords_api/report_stream.rb +0 -70
- data/lib/adwords_api/report_utils.rb +0 -383
- data/lib/adwords_api/utils.rb +0 -56
- data/lib/adwords_api/utils_reporter.rb +0 -58
- data/lib/adwords_api/v201710/account_label_service.rb +0 -46
- data/lib/adwords_api/v201710/account_label_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/ad_customizer_feed_service.rb +0 -46
- data/lib/adwords_api/v201710/ad_customizer_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/ad_group_ad_service.rb +0 -62
- data/lib/adwords_api/v201710/ad_group_ad_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/ad_group_bid_modifier_service.rb +0 -54
- data/lib/adwords_api/v201710/ad_group_bid_modifier_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/ad_group_criterion_service.rb +0 -62
- data/lib/adwords_api/v201710/ad_group_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/ad_group_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201710/ad_group_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/ad_group_feed_service.rb +0 -54
- data/lib/adwords_api/v201710/ad_group_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/ad_group_service.rb +0 -62
- data/lib/adwords_api/v201710/ad_group_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/ad_param_service.rb +0 -46
- data/lib/adwords_api/v201710/ad_param_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/adwords_user_list_service.rb +0 -62
- data/lib/adwords_api/v201710/adwords_user_list_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/batch_job_service.rb +0 -54
- data/lib/adwords_api/v201710/batch_job_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/bidding_strategy_service.rb +0 -54
- data/lib/adwords_api/v201710/bidding_strategy_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/budget_order_service.rb +0 -54
- data/lib/adwords_api/v201710/budget_order_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/budget_service.rb +0 -54
- data/lib/adwords_api/v201710/budget_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/campaign_bid_modifier_service.rb +0 -54
- data/lib/adwords_api/v201710/campaign_bid_modifier_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/campaign_criterion_service.rb +0 -54
- data/lib/adwords_api/v201710/campaign_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/campaign_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201710/campaign_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/campaign_feed_service.rb +0 -54
- data/lib/adwords_api/v201710/campaign_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/campaign_group_performance_target_service.rb +0 -46
- data/lib/adwords_api/v201710/campaign_group_performance_target_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/campaign_group_service.rb +0 -46
- data/lib/adwords_api/v201710/campaign_group_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/campaign_service.rb +0 -62
- data/lib/adwords_api/v201710/campaign_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/campaign_shared_set_service.rb +0 -54
- data/lib/adwords_api/v201710/campaign_shared_set_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/constant_data_service.rb +0 -110
- data/lib/adwords_api/v201710/constant_data_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/conversion_tracker_service.rb +0 -54
- data/lib/adwords_api/v201710/conversion_tracker_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/customer_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201710/customer_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/customer_feed_service.rb +0 -54
- data/lib/adwords_api/v201710/customer_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/customer_negative_criterion_service.rb +0 -54
- data/lib/adwords_api/v201710/customer_negative_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/customer_service.rb +0 -62
- data/lib/adwords_api/v201710/customer_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/customer_sync_service.rb +0 -38
- data/lib/adwords_api/v201710/customer_sync_service_registry.rb +0 -47
- data/lib/adwords_api/v201710/data_service.rb +0 -94
- data/lib/adwords_api/v201710/data_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/draft_async_error_service.rb +0 -46
- data/lib/adwords_api/v201710/draft_async_error_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/draft_service.rb +0 -54
- data/lib/adwords_api/v201710/draft_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/feed_item_service.rb +0 -54
- data/lib/adwords_api/v201710/feed_item_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/feed_mapping_service.rb +0 -54
- data/lib/adwords_api/v201710/feed_mapping_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/feed_service.rb +0 -54
- data/lib/adwords_api/v201710/feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/label_service.rb +0 -54
- data/lib/adwords_api/v201710/label_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/location_criterion_service.rb +0 -46
- data/lib/adwords_api/v201710/location_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/managed_customer_service.rb +0 -78
- data/lib/adwords_api/v201710/managed_customer_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/media_service.rb +0 -54
- data/lib/adwords_api/v201710/media_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/offline_call_conversion_feed_service.rb +0 -38
- data/lib/adwords_api/v201710/offline_call_conversion_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/offline_conversion_feed_service.rb +0 -38
- data/lib/adwords_api/v201710/offline_conversion_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/offline_data_upload_service.rb +0 -46
- data/lib/adwords_api/v201710/offline_data_upload_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/report_definition_service.rb +0 -38
- data/lib/adwords_api/v201710/report_definition_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/shared_criterion_service.rb +0 -54
- data/lib/adwords_api/v201710/shared_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/shared_set_service.rb +0 -54
- data/lib/adwords_api/v201710/shared_set_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/targeting_idea_service.rb +0 -38
- data/lib/adwords_api/v201710/targeting_idea_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/traffic_estimator_service.rb +0 -38
- data/lib/adwords_api/v201710/traffic_estimator_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/trial_async_error_service.rb +0 -46
- data/lib/adwords_api/v201710/trial_async_error_service_registry.rb +0 -46
- data/lib/adwords_api/v201710/trial_service.rb +0 -54
- data/lib/adwords_api/v201710/trial_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/account_label_service.rb +0 -46
- data/lib/adwords_api/v201802/account_label_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/ad_customizer_feed_service.rb +0 -46
- data/lib/adwords_api/v201802/ad_customizer_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/ad_group_ad_service.rb +0 -62
- data/lib/adwords_api/v201802/ad_group_ad_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/ad_group_bid_modifier_service.rb +0 -54
- data/lib/adwords_api/v201802/ad_group_bid_modifier_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/ad_group_criterion_service.rb +0 -62
- data/lib/adwords_api/v201802/ad_group_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/ad_group_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201802/ad_group_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/ad_group_feed_service.rb +0 -54
- data/lib/adwords_api/v201802/ad_group_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/ad_group_service.rb +0 -62
- data/lib/adwords_api/v201802/ad_group_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/ad_param_service.rb +0 -46
- data/lib/adwords_api/v201802/ad_param_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/adwords_user_list_service.rb +0 -62
- data/lib/adwords_api/v201802/adwords_user_list_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/batch_job_service.rb +0 -54
- data/lib/adwords_api/v201802/batch_job_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/bidding_strategy_service.rb +0 -54
- data/lib/adwords_api/v201802/bidding_strategy_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/budget_order_service.rb +0 -54
- data/lib/adwords_api/v201802/budget_order_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/budget_service.rb +0 -54
- data/lib/adwords_api/v201802/budget_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/campaign_bid_modifier_service.rb +0 -54
- data/lib/adwords_api/v201802/campaign_bid_modifier_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/campaign_criterion_service.rb +0 -54
- data/lib/adwords_api/v201802/campaign_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/campaign_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201802/campaign_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/campaign_feed_service.rb +0 -54
- data/lib/adwords_api/v201802/campaign_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/campaign_group_performance_target_service.rb +0 -46
- data/lib/adwords_api/v201802/campaign_group_performance_target_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/campaign_group_service.rb +0 -46
- data/lib/adwords_api/v201802/campaign_group_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/campaign_service.rb +0 -62
- data/lib/adwords_api/v201802/campaign_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/campaign_shared_set_service.rb +0 -54
- data/lib/adwords_api/v201802/campaign_shared_set_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/constant_data_service.rb +0 -110
- data/lib/adwords_api/v201802/constant_data_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/conversion_tracker_service.rb +0 -54
- data/lib/adwords_api/v201802/conversion_tracker_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/customer_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201802/customer_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/customer_feed_service.rb +0 -54
- data/lib/adwords_api/v201802/customer_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/customer_negative_criterion_service.rb +0 -54
- data/lib/adwords_api/v201802/customer_negative_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/customer_service.rb +0 -62
- data/lib/adwords_api/v201802/customer_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/customer_sync_service.rb +0 -38
- data/lib/adwords_api/v201802/customer_sync_service_registry.rb +0 -47
- data/lib/adwords_api/v201802/data_service.rb +0 -94
- data/lib/adwords_api/v201802/data_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/draft_async_error_service.rb +0 -46
- data/lib/adwords_api/v201802/draft_async_error_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/draft_service.rb +0 -54
- data/lib/adwords_api/v201802/draft_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/feed_item_service.rb +0 -54
- data/lib/adwords_api/v201802/feed_item_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/feed_item_target_service.rb +0 -54
- data/lib/adwords_api/v201802/feed_item_target_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/feed_mapping_service.rb +0 -54
- data/lib/adwords_api/v201802/feed_mapping_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/feed_service.rb +0 -54
- data/lib/adwords_api/v201802/feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/label_service.rb +0 -54
- data/lib/adwords_api/v201802/label_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/location_criterion_service.rb +0 -46
- data/lib/adwords_api/v201802/location_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/managed_customer_service.rb +0 -78
- data/lib/adwords_api/v201802/managed_customer_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/media_service.rb +0 -54
- data/lib/adwords_api/v201802/media_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/offline_call_conversion_feed_service.rb +0 -38
- data/lib/adwords_api/v201802/offline_call_conversion_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/offline_conversion_feed_service.rb +0 -38
- data/lib/adwords_api/v201802/offline_conversion_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/offline_data_upload_service.rb +0 -46
- data/lib/adwords_api/v201802/offline_data_upload_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/report_definition_service.rb +0 -38
- data/lib/adwords_api/v201802/report_definition_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/shared_criterion_service.rb +0 -54
- data/lib/adwords_api/v201802/shared_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/shared_set_service.rb +0 -54
- data/lib/adwords_api/v201802/shared_set_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/targeting_idea_service.rb +0 -38
- data/lib/adwords_api/v201802/targeting_idea_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/traffic_estimator_service.rb +0 -38
- data/lib/adwords_api/v201802/traffic_estimator_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/trial_async_error_service.rb +0 -46
- data/lib/adwords_api/v201802/trial_async_error_service_registry.rb +0 -46
- data/lib/adwords_api/v201802/trial_service.rb +0 -54
- data/lib/adwords_api/v201802/trial_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/account_label_service.rb +0 -46
- data/lib/adwords_api/v201806/account_label_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/ad_customizer_feed_service.rb +0 -46
- data/lib/adwords_api/v201806/ad_customizer_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/ad_group_ad_service.rb +0 -62
- data/lib/adwords_api/v201806/ad_group_ad_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/ad_group_bid_modifier_service.rb +0 -54
- data/lib/adwords_api/v201806/ad_group_bid_modifier_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/ad_group_criterion_service.rb +0 -62
- data/lib/adwords_api/v201806/ad_group_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/ad_group_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201806/ad_group_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/ad_group_feed_service.rb +0 -54
- data/lib/adwords_api/v201806/ad_group_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/ad_group_service.rb +0 -62
- data/lib/adwords_api/v201806/ad_group_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/ad_param_service.rb +0 -46
- data/lib/adwords_api/v201806/ad_param_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/ad_service.rb +0 -46
- data/lib/adwords_api/v201806/ad_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/adwords_user_list_service.rb +0 -62
- data/lib/adwords_api/v201806/adwords_user_list_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/asset_service.rb +0 -46
- data/lib/adwords_api/v201806/asset_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/batch_job_service.rb +0 -54
- data/lib/adwords_api/v201806/batch_job_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/bidding_strategy_service.rb +0 -54
- data/lib/adwords_api/v201806/bidding_strategy_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/budget_order_service.rb +0 -54
- data/lib/adwords_api/v201806/budget_order_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/budget_service.rb +0 -54
- data/lib/adwords_api/v201806/budget_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/campaign_bid_modifier_service.rb +0 -54
- data/lib/adwords_api/v201806/campaign_bid_modifier_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/campaign_criterion_service.rb +0 -54
- data/lib/adwords_api/v201806/campaign_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/campaign_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201806/campaign_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/campaign_feed_service.rb +0 -54
- data/lib/adwords_api/v201806/campaign_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/campaign_group_performance_target_service.rb +0 -46
- data/lib/adwords_api/v201806/campaign_group_performance_target_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/campaign_group_service.rb +0 -46
- data/lib/adwords_api/v201806/campaign_group_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/campaign_service.rb +0 -62
- data/lib/adwords_api/v201806/campaign_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/campaign_shared_set_service.rb +0 -54
- data/lib/adwords_api/v201806/campaign_shared_set_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/constant_data_service.rb +0 -110
- data/lib/adwords_api/v201806/constant_data_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/conversion_tracker_service.rb +0 -54
- data/lib/adwords_api/v201806/conversion_tracker_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/custom_affinity_service.rb +0 -62
- data/lib/adwords_api/v201806/custom_affinity_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/customer_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201806/customer_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/customer_feed_service.rb +0 -54
- data/lib/adwords_api/v201806/customer_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/customer_negative_criterion_service.rb +0 -54
- data/lib/adwords_api/v201806/customer_negative_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/customer_service.rb +0 -62
- data/lib/adwords_api/v201806/customer_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/customer_sync_service.rb +0 -38
- data/lib/adwords_api/v201806/customer_sync_service_registry.rb +0 -47
- data/lib/adwords_api/v201806/data_service.rb +0 -94
- data/lib/adwords_api/v201806/data_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/draft_async_error_service.rb +0 -46
- data/lib/adwords_api/v201806/draft_async_error_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/draft_service.rb +0 -54
- data/lib/adwords_api/v201806/draft_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/feed_item_service.rb +0 -54
- data/lib/adwords_api/v201806/feed_item_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/feed_item_target_service.rb +0 -54
- data/lib/adwords_api/v201806/feed_item_target_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/feed_mapping_service.rb +0 -54
- data/lib/adwords_api/v201806/feed_mapping_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/feed_service.rb +0 -54
- data/lib/adwords_api/v201806/feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/label_service.rb +0 -54
- data/lib/adwords_api/v201806/label_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/location_criterion_service.rb +0 -46
- data/lib/adwords_api/v201806/location_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/managed_customer_service.rb +0 -78
- data/lib/adwords_api/v201806/managed_customer_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/media_service.rb +0 -54
- data/lib/adwords_api/v201806/media_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/offline_call_conversion_feed_service.rb +0 -38
- data/lib/adwords_api/v201806/offline_call_conversion_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/offline_conversion_adjustment_feed_service.rb +0 -38
- data/lib/adwords_api/v201806/offline_conversion_adjustment_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/offline_conversion_feed_service.rb +0 -38
- data/lib/adwords_api/v201806/offline_conversion_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/offline_data_upload_service.rb +0 -46
- data/lib/adwords_api/v201806/offline_data_upload_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/report_definition_service.rb +0 -38
- data/lib/adwords_api/v201806/report_definition_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/shared_criterion_service.rb +0 -54
- data/lib/adwords_api/v201806/shared_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/shared_set_service.rb +0 -54
- data/lib/adwords_api/v201806/shared_set_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/targeting_idea_service.rb +0 -38
- data/lib/adwords_api/v201806/targeting_idea_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/traffic_estimator_service.rb +0 -38
- data/lib/adwords_api/v201806/traffic_estimator_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/trial_async_error_service.rb +0 -46
- data/lib/adwords_api/v201806/trial_async_error_service_registry.rb +0 -46
- data/lib/adwords_api/v201806/trial_service.rb +0 -54
- data/lib/adwords_api/v201806/trial_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/account_label_service.rb +0 -46
- data/lib/adwords_api/v201809/account_label_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/ad_customizer_feed_service.rb +0 -46
- data/lib/adwords_api/v201809/ad_customizer_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/ad_group_ad_service.rb +0 -62
- data/lib/adwords_api/v201809/ad_group_ad_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/ad_group_bid_modifier_service.rb +0 -54
- data/lib/adwords_api/v201809/ad_group_bid_modifier_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/ad_group_criterion_service.rb +0 -62
- data/lib/adwords_api/v201809/ad_group_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/ad_group_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201809/ad_group_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/ad_group_feed_service.rb +0 -54
- data/lib/adwords_api/v201809/ad_group_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/ad_group_service.rb +0 -62
- data/lib/adwords_api/v201809/ad_group_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/ad_param_service.rb +0 -46
- data/lib/adwords_api/v201809/ad_param_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/ad_service.rb +0 -46
- data/lib/adwords_api/v201809/ad_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/adwords_user_list_service.rb +0 -62
- data/lib/adwords_api/v201809/adwords_user_list_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/asset_service.rb +0 -46
- data/lib/adwords_api/v201809/asset_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/batch_job_service.rb +0 -54
- data/lib/adwords_api/v201809/batch_job_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/bidding_strategy_service.rb +0 -54
- data/lib/adwords_api/v201809/bidding_strategy_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/budget_order_service.rb +0 -54
- data/lib/adwords_api/v201809/budget_order_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/budget_service.rb +0 -54
- data/lib/adwords_api/v201809/budget_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/campaign_bid_modifier_service.rb +0 -54
- data/lib/adwords_api/v201809/campaign_bid_modifier_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/campaign_criterion_service.rb +0 -54
- data/lib/adwords_api/v201809/campaign_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/campaign_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201809/campaign_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/campaign_feed_service.rb +0 -54
- data/lib/adwords_api/v201809/campaign_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/campaign_group_performance_target_service.rb +0 -46
- data/lib/adwords_api/v201809/campaign_group_performance_target_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/campaign_group_service.rb +0 -46
- data/lib/adwords_api/v201809/campaign_group_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/campaign_service.rb +0 -62
- data/lib/adwords_api/v201809/campaign_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/campaign_shared_set_service.rb +0 -54
- data/lib/adwords_api/v201809/campaign_shared_set_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/constant_data_service.rb +0 -110
- data/lib/adwords_api/v201809/constant_data_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/conversion_tracker_service.rb +0 -54
- data/lib/adwords_api/v201809/conversion_tracker_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/custom_affinity_service.rb +0 -62
- data/lib/adwords_api/v201809/custom_affinity_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/customer_extension_setting_service.rb +0 -54
- data/lib/adwords_api/v201809/customer_extension_setting_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/customer_feed_service.rb +0 -54
- data/lib/adwords_api/v201809/customer_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/customer_negative_criterion_service.rb +0 -54
- data/lib/adwords_api/v201809/customer_negative_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/customer_service.rb +0 -62
- data/lib/adwords_api/v201809/customer_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/customer_sync_service.rb +0 -38
- data/lib/adwords_api/v201809/customer_sync_service_registry.rb +0 -47
- data/lib/adwords_api/v201809/data_service.rb +0 -94
- data/lib/adwords_api/v201809/data_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/draft_async_error_service.rb +0 -46
- data/lib/adwords_api/v201809/draft_async_error_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/draft_service.rb +0 -54
- data/lib/adwords_api/v201809/draft_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/feed_item_service.rb +0 -54
- data/lib/adwords_api/v201809/feed_item_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/feed_item_target_service.rb +0 -54
- data/lib/adwords_api/v201809/feed_item_target_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/feed_mapping_service.rb +0 -54
- data/lib/adwords_api/v201809/feed_mapping_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/feed_service.rb +0 -54
- data/lib/adwords_api/v201809/feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/label_service.rb +0 -54
- data/lib/adwords_api/v201809/label_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/location_criterion_service.rb +0 -46
- data/lib/adwords_api/v201809/location_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/managed_customer_service.rb +0 -78
- data/lib/adwords_api/v201809/managed_customer_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/media_service.rb +0 -54
- data/lib/adwords_api/v201809/media_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/offline_call_conversion_feed_service.rb +0 -38
- data/lib/adwords_api/v201809/offline_call_conversion_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/offline_conversion_adjustment_feed_service.rb +0 -38
- data/lib/adwords_api/v201809/offline_conversion_adjustment_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/offline_conversion_feed_service.rb +0 -38
- data/lib/adwords_api/v201809/offline_conversion_feed_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/offline_data_upload_service.rb +0 -46
- data/lib/adwords_api/v201809/offline_data_upload_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/report_definition_service.rb +0 -38
- data/lib/adwords_api/v201809/report_definition_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/shared_criterion_service.rb +0 -54
- data/lib/adwords_api/v201809/shared_criterion_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/shared_set_service.rb +0 -54
- data/lib/adwords_api/v201809/shared_set_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/targeting_idea_service.rb +0 -38
- data/lib/adwords_api/v201809/targeting_idea_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/traffic_estimator_service.rb +0 -38
- data/lib/adwords_api/v201809/traffic_estimator_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/trial_async_error_service.rb +0 -46
- data/lib/adwords_api/v201809/trial_async_error_service_registry.rb +0 -46
- data/lib/adwords_api/v201809/trial_service.rb +0 -54
- data/lib/adwords_api/v201809/trial_service_registry.rb +0 -46
- data/lib/adwords_api/version.rb +0 -24
@@ -1,333 +0,0 @@
|
|
1
|
-
# Encoding: utf-8
|
2
|
-
#
|
3
|
-
# Copyright:: Copyright 2010, Google Inc. All Rights Reserved.
|
4
|
-
#
|
5
|
-
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
14
|
-
# implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
# Helper methods for loading and managing the available services in the AdWords
|
19
|
-
# API.
|
20
|
-
|
21
|
-
require 'ads_common/api_config'
|
22
|
-
|
23
|
-
require 'adwords_api/version'
|
24
|
-
|
25
|
-
module AdwordsApi
|
26
|
-
|
27
|
-
# Contains helper methods for loading and managing the available services.
|
28
|
-
module ApiConfig
|
29
|
-
|
30
|
-
# Inherit from AdsCommon::ApiConfig
|
31
|
-
class << ApiConfig
|
32
|
-
include AdsCommon::ApiConfig
|
33
|
-
end
|
34
|
-
|
35
|
-
# Set defaults
|
36
|
-
DEFAULT_VERSION = :v201809
|
37
|
-
LATEST_VERSION = :v201809
|
38
|
-
|
39
|
-
# Set other constants
|
40
|
-
API_NAME = 'AdwordsApi'
|
41
|
-
DEFAULT_CONFIG_FILENAME = 'adwords_api.yml'
|
42
|
-
|
43
|
-
# Configure the services available to each version
|
44
|
-
@@service_config = {
|
45
|
-
:v201806 => [
|
46
|
-
:AccountLabelService,
|
47
|
-
:AdCustomizerFeedService,
|
48
|
-
:AdGroupAdService,
|
49
|
-
:AdGroupBidModifierService,
|
50
|
-
:AdGroupCriterionService,
|
51
|
-
:AdGroupExtensionSettingService,
|
52
|
-
:AdGroupFeedService,
|
53
|
-
:AdGroupService,
|
54
|
-
:AdParamService,
|
55
|
-
:AdService,
|
56
|
-
:AdwordsUserListService,
|
57
|
-
:AssetService,
|
58
|
-
:BatchJobService,
|
59
|
-
:BiddingStrategyService,
|
60
|
-
:BudgetOrderService,
|
61
|
-
:BudgetService,
|
62
|
-
:CampaignBidModifierService,
|
63
|
-
:CampaignCriterionService,
|
64
|
-
:CampaignExtensionSettingService,
|
65
|
-
:CampaignFeedService,
|
66
|
-
:CampaignGroupService,
|
67
|
-
:CampaignGroupPerformanceTargetService,
|
68
|
-
:CampaignService,
|
69
|
-
:CampaignSharedSetService,
|
70
|
-
:ConstantDataService,
|
71
|
-
:ConversionTrackerService,
|
72
|
-
:CustomAffinityService,
|
73
|
-
:CustomerExtensionSettingService,
|
74
|
-
:CustomerFeedService,
|
75
|
-
:CustomerNegativeCriterionService,
|
76
|
-
:CustomerService,
|
77
|
-
:CustomerSyncService,
|
78
|
-
:DataService,
|
79
|
-
:DraftAsyncErrorService,
|
80
|
-
:DraftService,
|
81
|
-
:FeedItemService,
|
82
|
-
:FeedItemTargetService,
|
83
|
-
:FeedMappingService,
|
84
|
-
:FeedService,
|
85
|
-
:LabelService,
|
86
|
-
:LocationCriterionService,
|
87
|
-
:ManagedCustomerService,
|
88
|
-
:MediaService,
|
89
|
-
:OfflineCallConversionFeedService,
|
90
|
-
:OfflineConversionAdjustmentFeedService,
|
91
|
-
:OfflineConversionFeedService,
|
92
|
-
:OfflineDataUploadService,
|
93
|
-
:ReportDefinitionService,
|
94
|
-
:SharedCriterionService,
|
95
|
-
:SharedSetService,
|
96
|
-
:TargetingIdeaService,
|
97
|
-
:TrafficEstimatorService,
|
98
|
-
:TrialAsyncErrorService,
|
99
|
-
:TrialService
|
100
|
-
],
|
101
|
-
:v201809 => [
|
102
|
-
:AccountLabelService,
|
103
|
-
:AdCustomizerFeedService,
|
104
|
-
:AdGroupAdService,
|
105
|
-
:AdGroupBidModifierService,
|
106
|
-
:AdGroupCriterionService,
|
107
|
-
:AdGroupExtensionSettingService,
|
108
|
-
:AdGroupFeedService,
|
109
|
-
:AdGroupService,
|
110
|
-
:AdParamService,
|
111
|
-
:AdService,
|
112
|
-
:AdwordsUserListService,
|
113
|
-
:AssetService,
|
114
|
-
:BatchJobService,
|
115
|
-
:BiddingStrategyService,
|
116
|
-
:BudgetOrderService,
|
117
|
-
:BudgetService,
|
118
|
-
:CampaignBidModifierService,
|
119
|
-
:CampaignCriterionService,
|
120
|
-
:CampaignExtensionSettingService,
|
121
|
-
:CampaignFeedService,
|
122
|
-
:CampaignGroupService,
|
123
|
-
:CampaignGroupPerformanceTargetService,
|
124
|
-
:CampaignService,
|
125
|
-
:CampaignSharedSetService,
|
126
|
-
:ConstantDataService,
|
127
|
-
:ConversionTrackerService,
|
128
|
-
:CustomAffinityService,
|
129
|
-
:CustomerExtensionSettingService,
|
130
|
-
:CustomerFeedService,
|
131
|
-
:CustomerNegativeCriterionService,
|
132
|
-
:CustomerService,
|
133
|
-
:CustomerSyncService,
|
134
|
-
:DataService,
|
135
|
-
:DraftAsyncErrorService,
|
136
|
-
:DraftService,
|
137
|
-
:FeedItemService,
|
138
|
-
:FeedItemTargetService,
|
139
|
-
:FeedMappingService,
|
140
|
-
:FeedService,
|
141
|
-
:LabelService,
|
142
|
-
:LocationCriterionService,
|
143
|
-
:ManagedCustomerService,
|
144
|
-
:MediaService,
|
145
|
-
:OfflineCallConversionFeedService,
|
146
|
-
:OfflineConversionAdjustmentFeedService,
|
147
|
-
:OfflineConversionFeedService,
|
148
|
-
:OfflineDataUploadService,
|
149
|
-
:ReportDefinitionService,
|
150
|
-
:SharedCriterionService,
|
151
|
-
:SharedSetService,
|
152
|
-
:TargetingIdeaService,
|
153
|
-
:TrafficEstimatorService,
|
154
|
-
:TrialAsyncErrorService,
|
155
|
-
:TrialService
|
156
|
-
]
|
157
|
-
}
|
158
|
-
|
159
|
-
# Configure the base URL for each version and scope.
|
160
|
-
@@config = {
|
161
|
-
:oauth_scope => 'https://www.googleapis.com/auth/adwords',
|
162
|
-
:header_ns => 'https://adwords.google.com/api/adwords/cm/',
|
163
|
-
:v201806 => 'https://adwords.google.com/api/adwords/',
|
164
|
-
:v201809 => 'https://adwords.google.com/api/adwords/'
|
165
|
-
}
|
166
|
-
|
167
|
-
# Configure the subdirectories for each version / service pair.
|
168
|
-
# A missing pair means that only the base URL is used.
|
169
|
-
@@subdir_config = {
|
170
|
-
# v201806
|
171
|
-
[:v201806, :AccountLabelService] => 'mcm/',
|
172
|
-
[:v201806, :AdCustomizerFeedService] => 'cm/',
|
173
|
-
[:v201806, :AdGroupAdService] => 'cm/',
|
174
|
-
[:v201806, :AdGroupBidModifierService] => 'cm/',
|
175
|
-
[:v201806, :AdGroupCriterionService] => 'cm/',
|
176
|
-
[:v201806, :AdGroupExtensionSettingService] => 'cm/',
|
177
|
-
[:v201806, :AdGroupFeedService] => 'cm/',
|
178
|
-
[:v201806, :AdGroupService] => 'cm/',
|
179
|
-
[:v201806, :AdParamService] => 'cm/',
|
180
|
-
[:v201806, :AdService] => 'cm/',
|
181
|
-
[:v201806, :AdwordsUserListService] => 'rm/',
|
182
|
-
[:v201806, :AssetService] => 'cm/',
|
183
|
-
[:v201806, :BatchJobService] => 'cm/',
|
184
|
-
[:v201806, :BiddingStrategyService] => 'cm/',
|
185
|
-
[:v201806, :BudgetOrderService] => 'billing/',
|
186
|
-
[:v201806, :BudgetService] => 'cm/',
|
187
|
-
[:v201806, :CampaignBidModifierService] => 'cm/',
|
188
|
-
[:v201806, :CampaignCriterionService] => 'cm/',
|
189
|
-
[:v201806, :CampaignExtensionSettingService] => 'cm/',
|
190
|
-
[:v201806, :CampaignFeedService] => 'cm/',
|
191
|
-
[:v201806, :CampaignGroupService] => 'cm/',
|
192
|
-
[:v201806, :CampaignGroupPerformanceTargetService] => 'cm/',
|
193
|
-
[:v201806, :CampaignService] => 'cm/',
|
194
|
-
[:v201806, :CampaignSharedSetService] => 'cm/',
|
195
|
-
[:v201806, :ConstantDataService] => 'cm/',
|
196
|
-
[:v201806, :ConversionTrackerService] => 'cm/',
|
197
|
-
[:v201806, :CustomAffinityService] => 'rm/',
|
198
|
-
[:v201806, :CustomerExtensionSettingService] => 'cm/',
|
199
|
-
[:v201806, :CustomerFeedService] => 'cm/',
|
200
|
-
[:v201806, :CustomerNegativeCriterionService] => 'cm/',
|
201
|
-
[:v201806, :CustomerService] => 'mcm/',
|
202
|
-
[:v201806, :CustomerSyncService] => 'ch/',
|
203
|
-
[:v201806, :DraftAsyncErrorService] => 'cm/',
|
204
|
-
[:v201806, :DataService] => 'cm/',
|
205
|
-
[:v201806, :DraftService] => 'cm/',
|
206
|
-
[:v201806, :FeedItemService] => 'cm/',
|
207
|
-
[:v201806, :FeedItemTargetService] => 'cm/',
|
208
|
-
[:v201806, :FeedMappingService] => 'cm/',
|
209
|
-
[:v201806, :FeedService] => 'cm/',
|
210
|
-
[:v201806, :LabelService] => 'cm/',
|
211
|
-
[:v201806, :LocationCriterionService] => 'cm/',
|
212
|
-
[:v201806, :ManagedCustomerService] => 'mcm/',
|
213
|
-
[:v201806, :MediaService] => 'cm/',
|
214
|
-
[:v201806, :OfflineCallConversionFeedService] => 'cm/',
|
215
|
-
[:v201806, :OfflineConversionAdjustmentFeedService] => 'cm/',
|
216
|
-
[:v201806, :OfflineConversionFeedService] => 'cm/',
|
217
|
-
[:v201806, :OfflineDataUploadService] => 'rm/',
|
218
|
-
[:v201806, :ReportDefinitionService] => 'cm/',
|
219
|
-
[:v201806, :SharedCriterionService] => 'cm/',
|
220
|
-
[:v201806, :SharedSetService] => 'cm/',
|
221
|
-
[:v201806, :TargetingIdeaService] => 'o/',
|
222
|
-
[:v201806, :TrafficEstimatorService] => 'o/',
|
223
|
-
[:v201806, :TrialAsyncErrorService] => 'cm/',
|
224
|
-
[:v201806, :TrialService] => 'cm/',
|
225
|
-
# v201809
|
226
|
-
[:v201809, :AccountLabelService] => 'mcm/',
|
227
|
-
[:v201809, :AdCustomizerFeedService] => 'cm/',
|
228
|
-
[:v201809, :AdGroupAdService] => 'cm/',
|
229
|
-
[:v201809, :AdGroupBidModifierService] => 'cm/',
|
230
|
-
[:v201809, :AdGroupCriterionService] => 'cm/',
|
231
|
-
[:v201809, :AdGroupExtensionSettingService] => 'cm/',
|
232
|
-
[:v201809, :AdGroupFeedService] => 'cm/',
|
233
|
-
[:v201809, :AdGroupService] => 'cm/',
|
234
|
-
[:v201809, :AdParamService] => 'cm/',
|
235
|
-
[:v201809, :AdService] => 'cm/',
|
236
|
-
[:v201809, :AdwordsUserListService] => 'rm/',
|
237
|
-
[:v201809, :AssetService] => 'cm/',
|
238
|
-
[:v201809, :BatchJobService] => 'cm/',
|
239
|
-
[:v201809, :BiddingStrategyService] => 'cm/',
|
240
|
-
[:v201809, :BudgetOrderService] => 'billing/',
|
241
|
-
[:v201809, :BudgetService] => 'cm/',
|
242
|
-
[:v201809, :CampaignBidModifierService] => 'cm/',
|
243
|
-
[:v201809, :CampaignCriterionService] => 'cm/',
|
244
|
-
[:v201809, :CampaignExtensionSettingService] => 'cm/',
|
245
|
-
[:v201809, :CampaignFeedService] => 'cm/',
|
246
|
-
[:v201809, :CampaignGroupService] => 'cm/',
|
247
|
-
[:v201809, :CampaignGroupPerformanceTargetService] => 'cm/',
|
248
|
-
[:v201809, :CampaignService] => 'cm/',
|
249
|
-
[:v201809, :CampaignSharedSetService] => 'cm/',
|
250
|
-
[:v201809, :ConstantDataService] => 'cm/',
|
251
|
-
[:v201809, :ConversionTrackerService] => 'cm/',
|
252
|
-
[:v201809, :CustomAffinityService] => 'rm/',
|
253
|
-
[:v201809, :CustomerExtensionSettingService] => 'cm/',
|
254
|
-
[:v201809, :CustomerFeedService] => 'cm/',
|
255
|
-
[:v201809, :CustomerNegativeCriterionService] => 'cm/',
|
256
|
-
[:v201809, :CustomerService] => 'mcm/',
|
257
|
-
[:v201809, :CustomerSyncService] => 'ch/',
|
258
|
-
[:v201809, :DraftAsyncErrorService] => 'cm/',
|
259
|
-
[:v201809, :DataService] => 'cm/',
|
260
|
-
[:v201809, :DraftService] => 'cm/',
|
261
|
-
[:v201809, :FeedItemService] => 'cm/',
|
262
|
-
[:v201809, :FeedItemTargetService] => 'cm/',
|
263
|
-
[:v201809, :FeedMappingService] => 'cm/',
|
264
|
-
[:v201809, :FeedService] => 'cm/',
|
265
|
-
[:v201809, :LabelService] => 'cm/',
|
266
|
-
[:v201809, :LocationCriterionService] => 'cm/',
|
267
|
-
[:v201809, :ManagedCustomerService] => 'mcm/',
|
268
|
-
[:v201809, :MediaService] => 'cm/',
|
269
|
-
[:v201809, :OfflineCallConversionFeedService] => 'cm/',
|
270
|
-
[:v201809, :OfflineConversionAdjustmentFeedService] => 'cm/',
|
271
|
-
[:v201809, :OfflineConversionFeedService] => 'cm/',
|
272
|
-
[:v201809, :OfflineDataUploadService] => 'rm/',
|
273
|
-
[:v201809, :ReportDefinitionService] => 'cm/',
|
274
|
-
[:v201809, :SharedCriterionService] => 'cm/',
|
275
|
-
[:v201809, :SharedSetService] => 'cm/',
|
276
|
-
[:v201809, :TargetingIdeaService] => 'o/',
|
277
|
-
[:v201809, :TrafficEstimatorService] => 'o/',
|
278
|
-
[:v201809, :TrialAsyncErrorService] => 'cm/',
|
279
|
-
[:v201809, :TrialService] => 'cm/'
|
280
|
-
}
|
281
|
-
|
282
|
-
public
|
283
|
-
|
284
|
-
# Getters for constants and module variables.
|
285
|
-
def self.default_version
|
286
|
-
DEFAULT_VERSION
|
287
|
-
end
|
288
|
-
|
289
|
-
def self.latest_version
|
290
|
-
LATEST_VERSION
|
291
|
-
end
|
292
|
-
|
293
|
-
def self.api_name
|
294
|
-
API_NAME
|
295
|
-
end
|
296
|
-
|
297
|
-
def self.service_config
|
298
|
-
@@service_config
|
299
|
-
end
|
300
|
-
|
301
|
-
def self.config(key)
|
302
|
-
@@config[key]
|
303
|
-
end
|
304
|
-
|
305
|
-
def self.subdir_config
|
306
|
-
@@subdir_config
|
307
|
-
end
|
308
|
-
|
309
|
-
def self.default_config_filename
|
310
|
-
DEFAULT_CONFIG_FILENAME
|
311
|
-
end
|
312
|
-
|
313
|
-
def self.headers_config
|
314
|
-
@@headers_config
|
315
|
-
end
|
316
|
-
|
317
|
-
# Get the download URL for Ad Hoc reports.
|
318
|
-
#
|
319
|
-
# Args:
|
320
|
-
# - version: the API version (as a symbol)
|
321
|
-
#
|
322
|
-
# Returns:
|
323
|
-
# - The endpoint URL (as a string)
|
324
|
-
#
|
325
|
-
def self.adhoc_report_download_url(version)
|
326
|
-
base = get_wsdl_base(version)
|
327
|
-
if base
|
328
|
-
base += 'reportdownload/%s' % version.to_s
|
329
|
-
end
|
330
|
-
return base
|
331
|
-
end
|
332
|
-
end
|
333
|
-
end
|
@@ -1,334 +0,0 @@
|
|
1
|
-
# Encoding: utf-8
|
2
|
-
#
|
3
|
-
# Copyright:: Copyright 2015, Google Inc. All Rights Reserved.
|
4
|
-
#
|
5
|
-
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
# you may not use this file except in compliance with the License.
|
7
|
-
# You may obtain a copy of the License at
|
8
|
-
#
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
#
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
14
|
-
# implied.
|
15
|
-
# See the License for the specific language governing permissions and
|
16
|
-
# limitations under the License.
|
17
|
-
#
|
18
|
-
# Contains utility methods specific to using the BatchJobService.
|
19
|
-
|
20
|
-
require 'nokogiri'
|
21
|
-
require 'nori'
|
22
|
-
|
23
|
-
require 'ads_common/http'
|
24
|
-
require 'ads_common/savon_service'
|
25
|
-
require 'adwords_api/errors'
|
26
|
-
require 'adwords_api/incremental_upload_helper'
|
27
|
-
|
28
|
-
module AdwordsApi
|
29
|
-
class BatchJobUtils
|
30
|
-
# Default constructor.
|
31
|
-
#
|
32
|
-
# Args:
|
33
|
-
# - api: AdwordsApi object
|
34
|
-
# - version: API version to use
|
35
|
-
#
|
36
|
-
def initialize(api, version)
|
37
|
-
@api, @version = api, version
|
38
|
-
end
|
39
|
-
|
40
|
-
# Uploads the given operations for a batch job to the provided URL.
|
41
|
-
#
|
42
|
-
# Args:
|
43
|
-
# - hash_operations: An array of ruby has operations to execute by
|
44
|
-
# posting them to the provided URL
|
45
|
-
# - service_name: The name of the AdwordsApi service as a symbol that would
|
46
|
-
# normally make this request
|
47
|
-
# - batch_job_url: The UploadURL provided by BatchJobService
|
48
|
-
#
|
49
|
-
# Raises:
|
50
|
-
# - InvalidBatchJobOperationError: If there is a problem converting the
|
51
|
-
# given operations to SOAP.
|
52
|
-
#
|
53
|
-
def upload_operations(operations, batch_job_url)
|
54
|
-
helper = start_incremental_upload(batch_job_url)
|
55
|
-
helper.upload(operations, true)
|
56
|
-
end
|
57
|
-
|
58
|
-
# Provides a helper to manage incremental uploads.
|
59
|
-
#
|
60
|
-
# Args:
|
61
|
-
# - batch_job_url: The UploadURL provided by BatchJobService for new jobs,
|
62
|
-
# or the upload_url from IncrementalUploadHelper for continued jobs.
|
63
|
-
# - uploaded_bytes: The number of bytes already uploaded for this
|
64
|
-
# incremental batch job. Can be retrieved from the IncrementalUploadHelper
|
65
|
-
# using uploaded_bytes.
|
66
|
-
#
|
67
|
-
# Returns:
|
68
|
-
# - an IncrementalUploadHelper that will accept operations and put them,
|
69
|
-
# keeping track of uploaded bytes automatically.
|
70
|
-
#
|
71
|
-
def start_incremental_upload(batch_job_url, uploaded_bytes = 0)
|
72
|
-
return AdwordsApi::IncrementalUploadHelper.new(
|
73
|
-
self, uploaded_bytes, batch_job_url)
|
74
|
-
end
|
75
|
-
|
76
|
-
# Initializes an upload URL to get the actual URL to which to upload
|
77
|
-
# operations.
|
78
|
-
#
|
79
|
-
# Args:
|
80
|
-
# - batch_job_url: The UploadURL provided by BatchJobService
|
81
|
-
#
|
82
|
-
# Returns:
|
83
|
-
# - The URL that should actually be used to upload operations.
|
84
|
-
#
|
85
|
-
def initialize_url(batch_job_url)
|
86
|
-
headers = DEFAULT_HEADERS
|
87
|
-
headers['Content-Length'] = 0
|
88
|
-
headers['x-goog-resumable'] = 'start'
|
89
|
-
|
90
|
-
response = AdsCommon::Http.post_response(
|
91
|
-
batch_job_url, '', @api.config, headers)
|
92
|
-
|
93
|
-
return response.headers['Location']
|
94
|
-
end
|
95
|
-
|
96
|
-
# Puts the provided operations to the provided URL, allowing
|
97
|
-
# for incremental followup puts.
|
98
|
-
#
|
99
|
-
# Args:
|
100
|
-
# - soap_operations: An array including SOAP operations provided by
|
101
|
-
# generate_soap_operations
|
102
|
-
# - batch_job_url: The UploadURL provided by BatchJobService
|
103
|
-
# - total_content_length: The total number of bytes already uploaded
|
104
|
-
# incrementally. Set this to 0 the first time you call the method.
|
105
|
-
# - is_last_request: Whether or not this set of uploads will conclude the
|
106
|
-
# full request.
|
107
|
-
#
|
108
|
-
# Returns:
|
109
|
-
# - total content length, including what was just uploaded. Pass this back
|
110
|
-
# into this method on subsequent calls.
|
111
|
-
def put_incremental_operations(
|
112
|
-
operations, batch_job_url, total_content_length = 0,
|
113
|
-
is_last_request = false)
|
114
|
-
@api.utils_reporter.batch_job_utils_used()
|
115
|
-
headers = DEFAULT_HEADERS
|
116
|
-
soap_operations = generate_soap_operations(operations)
|
117
|
-
request_body = soap_operations.join
|
118
|
-
is_first_request = (total_content_length == 0)
|
119
|
-
|
120
|
-
if is_first_request
|
121
|
-
request_body = (UPLOAD_XML_PREFIX % [@version]) + request_body
|
122
|
-
end
|
123
|
-
if is_last_request
|
124
|
-
request_body += UPLOAD_XML_SUFFIX
|
125
|
-
end
|
126
|
-
|
127
|
-
request_body = add_padding(request_body)
|
128
|
-
content_length = request_body.bytesize
|
129
|
-
|
130
|
-
headers['Content-Length'] = content_length
|
131
|
-
|
132
|
-
lower_bound = total_content_length
|
133
|
-
upper_bound = total_content_length + content_length - 1
|
134
|
-
total_bytes = is_last_request ? upper_bound + 1 : '*'
|
135
|
-
content_range =
|
136
|
-
"bytes %d-%d/%s" % [lower_bound, upper_bound, total_bytes]
|
137
|
-
|
138
|
-
headers['Content-Range'] = content_range
|
139
|
-
|
140
|
-
log_request(batch_job_url, headers, request_body)
|
141
|
-
|
142
|
-
# The HTTPI library fails to handle the response when uploading
|
143
|
-
# incremental requests. We're not interested in the response, so just
|
144
|
-
# ignore the error.
|
145
|
-
begin
|
146
|
-
AdsCommon::Http.put_response(
|
147
|
-
batch_job_url, request_body, @api.config, headers)
|
148
|
-
rescue ArgumentError
|
149
|
-
end
|
150
|
-
|
151
|
-
total_content_length += content_length
|
152
|
-
return total_content_length
|
153
|
-
end
|
154
|
-
|
155
|
-
# Downloads the results of a batch job from the specified URL.
|
156
|
-
#
|
157
|
-
# Args:
|
158
|
-
# - batch_job_url: The URL provided by BatchJobService to fetch the results
|
159
|
-
# from
|
160
|
-
#
|
161
|
-
# Returns:
|
162
|
-
# - the results of the batch job, as a ruby hash, or nil if none yet exist
|
163
|
-
#
|
164
|
-
def get_job_results(batch_job_url)
|
165
|
-
@api.utils_reporter.batch_job_utils_used()
|
166
|
-
xml_response = AdsCommon::Http.get_response(batch_job_url, @api.config)
|
167
|
-
begin
|
168
|
-
return sanitize_result(
|
169
|
-
get_nori().parse(xml_response.body)[:mutate_response][:rval])
|
170
|
-
rescue
|
171
|
-
return nil
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
private
|
176
|
-
|
177
|
-
# For incremental uploads, the size (in bytes) of the body of the request
|
178
|
-
# must be in multiples of 256k.
|
179
|
-
REQUIRED_CONTENT_LENGTH_INCREMENT = 256 * 1024
|
180
|
-
|
181
|
-
UPLOAD_XML_PREFIX = '<?xml version="1.0" encoding="UTF-8"?><ns1:mutate ' +
|
182
|
-
'xmlns:ns1="https://adwords.google.com/api/adwords/cm/%s">'
|
183
|
-
UPLOAD_XML_SUFFIX = '</ns1:mutate>'
|
184
|
-
DEFAULT_HEADERS = {"Content-Type" => "application/xml"}
|
185
|
-
|
186
|
-
SERVICES_BY_OPERATION_TYPE = {
|
187
|
-
'AdGroupAdOperation' => :AdGroupAdService,
|
188
|
-
'AdGroupAdLabelOperation' => :AdGroupAdService,
|
189
|
-
'AdGroupBidModifierOperation' => :AdGroupBidModifierService,
|
190
|
-
'AdGroupCriterionOperation' => :AdGroupCriterionService,
|
191
|
-
'AdGroupCriterionLabelOperation' => :AdGroupCriterionService,
|
192
|
-
'AdGroupExtensionSettingOperation' => :AdGroupExtensionSettingService,
|
193
|
-
'AdGroupOperation' => :AdGroupService,
|
194
|
-
'AdGroupLabelOperation' => :AdGroupService,
|
195
|
-
'BudgetOperation' => :BudgetService,
|
196
|
-
'CampaignCriterionOperation' => :CampaignCriterionService,
|
197
|
-
'CampaignExtensionSettingOperation' => :CampaignExtensionSettingService,
|
198
|
-
'CampaignLabelOperation' => :CampaignService,
|
199
|
-
'CampaignOperation' => :CampaignService,
|
200
|
-
'CampaignSharedSetOperation' => :CampaignSharedSetService,
|
201
|
-
'CustomerExtensionSettingOperation' => :CustomerExtensionSettingService,
|
202
|
-
'FeedItemOperation' => :FeedItemService,
|
203
|
-
'FeedItemTargetOperation' => :FeedItemTargetService,
|
204
|
-
'SharedCriterionOperation' => :SharedCriterionService,
|
205
|
-
'SharedSetOperation' => :SharedSetService
|
206
|
-
}
|
207
|
-
|
208
|
-
METHODS_BY_OPERATION_TYPE = {
|
209
|
-
'AdGroupAdOperation' => 'mutate_to_xml',
|
210
|
-
'AdGroupAdLabelOperation' => 'mutate_label_to_xml',
|
211
|
-
'AdGroupBidModifierOperation' => 'mutate_to_xml',
|
212
|
-
'AdGroupCriterionOperation' => 'mutate_to_xml',
|
213
|
-
'AdGroupCriterionLabelOperation' => 'mutate_label_to_xml',
|
214
|
-
'AdGroupExtensionSettingOperation' => 'mutate_to_xml',
|
215
|
-
'AdGroupOperation' => 'mutate_to_xml',
|
216
|
-
'AdGroupLabelOperation' => 'mutate_label_to_xml',
|
217
|
-
'BudgetOperation' => 'mutate_to_xml',
|
218
|
-
'CampaignCriterionOperation' => 'mutate_to_xml',
|
219
|
-
'CampaignExtensionSettingOperation' => 'mutate_to_xml',
|
220
|
-
'CampaignLabelOperation' => 'mutate_label_to_xml',
|
221
|
-
'CampaignOperation' => 'mutate_to_xml',
|
222
|
-
'CampaignSharedSetOperation' => 'mutate_to_xml',
|
223
|
-
'CustomerExtensionSettingOperation' => 'mutate_to_xml',
|
224
|
-
'FeedItemOperation' => 'mutate_to_xml',
|
225
|
-
'FeedItemTargetOperation' => 'mutate_to_xml',
|
226
|
-
'SharedCriterionOperation' => 'mutate_to_xml',
|
227
|
-
'SharedSetOperation' => 'mutate_to_xml'
|
228
|
-
}
|
229
|
-
|
230
|
-
def generate_soap_operations(hash_operations)
|
231
|
-
unless hash_operations.is_a?(Array)
|
232
|
-
raise AdwordsApi::Errors::InvalidBatchJobOperationError,
|
233
|
-
'Operations must be in an array.'
|
234
|
-
end
|
235
|
-
return hash_operations.map do |operation|
|
236
|
-
operation_type = operation[:xsi_type]
|
237
|
-
if operation_type.nil?
|
238
|
-
raise AdwordsApi::Errors::InvalidBatchJobOperationError,
|
239
|
-
':xsi_type for operations must be defined ' +
|
240
|
-
'explicitly for batch jobs.'
|
241
|
-
end
|
242
|
-
service_name = SERVICES_BY_OPERATION_TYPE[operation_type]
|
243
|
-
if service_name.nil?
|
244
|
-
raise AdwordsApi::Errors::InvalidBatchJobOperationError,
|
245
|
-
'Unknown operation type: %s' % operation_type
|
246
|
-
end
|
247
|
-
method_name = METHODS_BY_OPERATION_TYPE[operation_type]
|
248
|
-
service = @api.service(service_name, @version)
|
249
|
-
full_soap_xml = service.send(method_name, [operation])
|
250
|
-
operation_xml = extract_soap_operations(full_soap_xml)
|
251
|
-
operation_xml
|
252
|
-
end
|
253
|
-
end
|
254
|
-
|
255
|
-
# Given a full SOAP xml string, extract just the operations element
|
256
|
-
# from the SOAP body as a string.
|
257
|
-
def extract_soap_operations(full_soap_xml)
|
258
|
-
doc = Nokogiri::XML(full_soap_xml)
|
259
|
-
operations = doc.css('wsdl|operations')
|
260
|
-
operations.attr('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance')
|
261
|
-
operations.each do |element|
|
262
|
-
check_xsi_type(element)
|
263
|
-
end
|
264
|
-
return operations.to_s
|
265
|
-
end
|
266
|
-
|
267
|
-
def check_xsi_type(xml_node)
|
268
|
-
xsi_type = xml_node['xsi:type']
|
269
|
-
unless xsi_type.nil? or xsi_type.start_with?('ns1:')
|
270
|
-
xml_node['xsi:type'] = 'ns1:' + xsi_type
|
271
|
-
end
|
272
|
-
children = xml_node.children
|
273
|
-
unless children.empty?
|
274
|
-
children.each do |element|
|
275
|
-
check_xsi_type(element)
|
276
|
-
end
|
277
|
-
end
|
278
|
-
end
|
279
|
-
|
280
|
-
# Logs the request on debug level.
|
281
|
-
def log_request(url, headers, body)
|
282
|
-
logger = @api.logger
|
283
|
-
logger.debug("Report request to: '%s'" % url)
|
284
|
-
logger.debug('HTTP headers: [%s]' %
|
285
|
-
(headers.map { |k, v| [k, v].join(': ') }.join(', ')))
|
286
|
-
logger.debug(body)
|
287
|
-
end
|
288
|
-
|
289
|
-
# Removes extraneous XML information from return hash.
|
290
|
-
def sanitize_result(results)
|
291
|
-
if results.is_a?(Array)
|
292
|
-
ret = []
|
293
|
-
results.each do |result|
|
294
|
-
ret << sanitize_result(result)
|
295
|
-
end
|
296
|
-
return ret
|
297
|
-
end
|
298
|
-
|
299
|
-
if results.is_a?(Hash)
|
300
|
-
ret = {}
|
301
|
-
results.each do |k, v|
|
302
|
-
v = sanitize_result(v) if v.is_a?(Hash)
|
303
|
-
ret[k] = v unless k.to_s.start_with?('@')
|
304
|
-
end
|
305
|
-
return ret
|
306
|
-
end
|
307
|
-
|
308
|
-
return results
|
309
|
-
end
|
310
|
-
|
311
|
-
def add_padding(xml)
|
312
|
-
remainder = xml.bytesize % REQUIRED_CONTENT_LENGTH_INCREMENT
|
313
|
-
return xml if remainder == 0
|
314
|
-
bytes_to_add = REQUIRED_CONTENT_LENGTH_INCREMENT - remainder
|
315
|
-
padded_xml = xml + (' ' * bytes_to_add)
|
316
|
-
return padded_xml
|
317
|
-
end
|
318
|
-
|
319
|
-
def get_nori()
|
320
|
-
return @nori if @nori
|
321
|
-
|
322
|
-
nori_options = {
|
323
|
-
:strip_namespaces => true,
|
324
|
-
:convert_tags_to => lambda { |tag| tag.snakecase.to_sym },
|
325
|
-
:empty_tag_value => "",
|
326
|
-
:advanced_typecasting => false
|
327
|
-
}
|
328
|
-
|
329
|
-
@nori = Nori.new(nori_options)
|
330
|
-
|
331
|
-
return @nori
|
332
|
-
end
|
333
|
-
end
|
334
|
-
end
|