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,96 +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
|
-
# AdWords-specific credential handler.
|
19
|
-
|
20
|
-
require 'ads_common/credential_handler'
|
21
|
-
require 'adwords_api/api_config'
|
22
|
-
|
23
|
-
module AdwordsApi
|
24
|
-
class CredentialHandler < AdsCommon::CredentialHandler
|
25
|
-
# Whether we're making validate-only requests.
|
26
|
-
attr_accessor :validate_only
|
27
|
-
# Whether we're making partial failure requests.
|
28
|
-
attr_accessor :partial_failure
|
29
|
-
|
30
|
-
def initialize(config)
|
31
|
-
super(config)
|
32
|
-
@validate_only = false
|
33
|
-
@partial_failure = false
|
34
|
-
end
|
35
|
-
|
36
|
-
# Create the list of credentials to be used by the auth handler for header
|
37
|
-
# generation.
|
38
|
-
def credentials(credentials_override = nil)
|
39
|
-
result = super(credentials_override)
|
40
|
-
validate_headers_for_server(result)
|
41
|
-
|
42
|
-
extra_headers = {
|
43
|
-
'userAgent' => generate_user_agent(),
|
44
|
-
'developerToken' => result[:developer_token]
|
45
|
-
}
|
46
|
-
extra_headers['clientCustomerId'] = result[:client_customer_id] if
|
47
|
-
result[:client_customer_id]
|
48
|
-
extra_headers['validateOnly'] = 'true' if @validate_only
|
49
|
-
extra_headers['partialFailure'] = 'true' if @partial_failure
|
50
|
-
result[:extra_headers] = extra_headers
|
51
|
-
return result
|
52
|
-
end
|
53
|
-
|
54
|
-
# Generates string to use as user agent in headers.
|
55
|
-
def generate_user_agent(extra_ids = [])
|
56
|
-
agent_app = @config.read('authentication.user_agent')
|
57
|
-
if !agent_app.nil? && !agent_app.ascii_only?
|
58
|
-
raise AdwordsApi::Errors::InvalidUserAgentError.new(
|
59
|
-
'User agent contains non-ASCII characters.', agent_app)
|
60
|
-
end
|
61
|
-
extra_ids << ['AwApi-Ruby/%s' % AdwordsApi::ApiConfig::CLIENT_LIB_VERSION]
|
62
|
-
super(extra_ids, agent_app)
|
63
|
-
end
|
64
|
-
|
65
|
-
# Returns the client customer ID specified in the current credentials.
|
66
|
-
def identifier()
|
67
|
-
return credentials[:extra_headers]['clientCustomerId']
|
68
|
-
end
|
69
|
-
|
70
|
-
private
|
71
|
-
|
72
|
-
# Validates that the right credentials are being used for the chosen
|
73
|
-
# environment.
|
74
|
-
#
|
75
|
-
# Raises:
|
76
|
-
# - AdwordsApi::Errors:BadCredentialsError if supplied credentials are not
|
77
|
-
# valid.
|
78
|
-
#
|
79
|
-
def validate_headers_for_server(credentials)
|
80
|
-
client_customer_id = credentials[:client_customer_id]
|
81
|
-
|
82
|
-
if client_customer_id and (!(client_customer_id.is_a?(Integer) or
|
83
|
-
(client_customer_id =~ /^\d+(-\d+-\d+)?$/)))
|
84
|
-
raise AdwordsApi::Errors::BadCredentialsError,
|
85
|
-
'Invalid client customer ID: %s' % client_customer_id.to_s
|
86
|
-
end
|
87
|
-
|
88
|
-
token = credentials[:developer_token]
|
89
|
-
if token.nil? || token.empty?
|
90
|
-
raise AdwordsApi::Errors::BadCredentialsError,
|
91
|
-
'Developer token is missing, check credentials.'
|
92
|
-
end
|
93
|
-
return nil
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
data/lib/adwords_api/errors.rb
DELETED
@@ -1,110 +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
|
-
# Specific error handling for the AdWords API.
|
19
|
-
|
20
|
-
require 'ads_common/errors'
|
21
|
-
require 'ads_common/results_extractor'
|
22
|
-
|
23
|
-
module AdwordsApi
|
24
|
-
module Errors
|
25
|
-
|
26
|
-
# This class encapsulates base class for API exceptions. More specific
|
27
|
-
# exceptions are generated based on Service WSDL.
|
28
|
-
class ApiException < AdsCommon::Errors::ApiException
|
29
|
-
attr_reader :array_fields
|
30
|
-
|
31
|
-
def initialize(exception_fault, registry)
|
32
|
-
@array_fields ||= []
|
33
|
-
extractor = AdsCommon::ResultsExtractor.new(registry)
|
34
|
-
exception_type = exception_fault[:application_exception_type]
|
35
|
-
exception_data = (exception_type.nil?) ? exception_fault :
|
36
|
-
extractor.extract_exception_data(exception_fault, exception_type)
|
37
|
-
exception_data.each { |key, value| set_field(key, value) }
|
38
|
-
super(exception_data[:message])
|
39
|
-
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
# Sets instance's property to a value if it is defined
|
44
|
-
def set_field(field, value)
|
45
|
-
if respond_to?(field)
|
46
|
-
value = arrayize(value) if is_array_field(field)
|
47
|
-
instance_variable_set("@#{field}", value)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
# Makes sure object is an array
|
52
|
-
def arrayize(object)
|
53
|
-
return [] if object.nil?
|
54
|
-
return object.is_a?(Array) ? object : [object]
|
55
|
-
end
|
56
|
-
|
57
|
-
# Should a field be forced to be an array
|
58
|
-
def is_array_field(field)
|
59
|
-
return @array_fields.include?(field.to_s)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
# Error for invalid credentials sush as malformed ID.
|
64
|
-
class BadCredentialsError < AdsCommon::Errors::ApiException
|
65
|
-
end
|
66
|
-
|
67
|
-
# Error for malformed report definition.
|
68
|
-
class InvalidReportDefinitionError < AdsCommon::Errors::ApiException
|
69
|
-
end
|
70
|
-
|
71
|
-
# Error for server-side report error.
|
72
|
-
class ReportError < AdsCommon::Errors::ApiException
|
73
|
-
attr_reader :http_code
|
74
|
-
|
75
|
-
def initialize(http_code, message)
|
76
|
-
super(message)
|
77
|
-
@http_code = http_code
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
# Error for server-side report XML error.
|
82
|
-
class ReportXmlError < ReportError
|
83
|
-
attr_reader :type, :trigger, :field_path
|
84
|
-
|
85
|
-
def initialize(http_code, error_type, error_trigger, error_field_path)
|
86
|
-
message =
|
87
|
-
"HTTP code: %d, error type: '%s', trigger: '%s', field path: '%s'" %
|
88
|
-
[http_code, error_type, error_trigger, error_field_path]
|
89
|
-
super(http_code, message)
|
90
|
-
@type = error_type
|
91
|
-
@trigger = error_trigger
|
92
|
-
@field_path = error_field_path
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
# Error for use an unsupported operation in a batch job.
|
97
|
-
class InvalidBatchJobOperationError < AdsCommon::Errors::ApiException
|
98
|
-
end
|
99
|
-
|
100
|
-
# Error for using an invalid user agent string.
|
101
|
-
class InvalidUserAgentError < AdsCommon::Errors::Error
|
102
|
-
attr_reader :user_agent
|
103
|
-
|
104
|
-
def initialize(message, user_agent)
|
105
|
-
super(message)
|
106
|
-
@user_agent = user_agent
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
@@ -1,75 +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 helper methods to allow incremental uploads with the
|
19
|
-
# BatchJobService.
|
20
|
-
|
21
|
-
module AdwordsApi
|
22
|
-
class IncrementalUploadHelper
|
23
|
-
attr_reader :upload_url, :uploaded_bytes
|
24
|
-
|
25
|
-
# Default constructor.
|
26
|
-
#
|
27
|
-
# Args:
|
28
|
-
# - batch_job_service: The instance of BatchJobService that is providing
|
29
|
-
# this helper
|
30
|
-
# - uploaded_bytes: The number of bytes that have already been uploaded
|
31
|
-
# as part of this incremental process.
|
32
|
-
# - upload_url: The URL that should be used to upload incremental
|
33
|
-
# operations for this job.
|
34
|
-
#
|
35
|
-
def initialize(batch_job_utils, uploaded_bytes, upload_url)
|
36
|
-
@batch_job_utils = batch_job_utils
|
37
|
-
@uploaded_bytes = uploaded_bytes
|
38
|
-
if @uploaded_bytes == 0
|
39
|
-
@upload_url = @batch_job_utils.initialize_url(upload_url)
|
40
|
-
else
|
41
|
-
@upload_url = upload_url
|
42
|
-
end
|
43
|
-
@finished = false
|
44
|
-
end
|
45
|
-
|
46
|
-
# Takes an array of operations and puts it to the batch job incrementally.
|
47
|
-
#
|
48
|
-
# Args:
|
49
|
-
# - hash_operations: An array of operations to put, represented in hashes
|
50
|
-
# like you would normally pass to services.
|
51
|
-
# - is_last_request: Whether this request is the last request of the
|
52
|
-
# incremental job.
|
53
|
-
#
|
54
|
-
# Raises:
|
55
|
-
# - InvalidBatchJobOperationError: If this incremental upload is already
|
56
|
-
# finished or if there is an error converting the hash operations to
|
57
|
-
# soap operations.
|
58
|
-
#
|
59
|
-
def upload(operations, is_last_request = false)
|
60
|
-
check_status()
|
61
|
-
@uploaded_bytes = @batch_job_utils.put_incremental_operations(
|
62
|
-
operations, @upload_url, @uploaded_bytes, is_last_request)
|
63
|
-
@finished = true if is_last_request
|
64
|
-
end
|
65
|
-
|
66
|
-
private
|
67
|
-
|
68
|
-
def check_status()
|
69
|
-
if @finished
|
70
|
-
raise AdwordsApi::Errors::InvalidBatchJobOperationError,
|
71
|
-
'Cannot put new operations to completed incremental upload.'
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# Encoding: utf-8
|
2
|
-
#
|
3
|
-
# Copyright:: Copyright 2018, 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
|
-
# Base class with common methods used across both report and service queries.
|
19
|
-
|
20
|
-
require 'adwords_api/query_utils/where_builder'
|
21
|
-
|
22
|
-
module AdwordsApi
|
23
|
-
class QueryBuilder
|
24
|
-
def initialize(api)
|
25
|
-
@api = api
|
26
|
-
@where = []
|
27
|
-
end
|
28
|
-
|
29
|
-
def where(field)
|
30
|
-
clause = WhereBuilder.new(field)
|
31
|
-
@where << clause
|
32
|
-
return clause
|
33
|
-
end
|
34
|
-
|
35
|
-
def build_where()
|
36
|
-
return '' if @where.empty?
|
37
|
-
wheres = @where.map {|w| w.awql}
|
38
|
-
return sprintf(' WHERE %s', wheres.join(' AND '))
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# Encoding: utf-8
|
2
|
-
#
|
3
|
-
# Copyright:: Copyright 2018, 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
|
-
# Class to hold a generated AWQL query for reports.
|
19
|
-
|
20
|
-
module AdwordsApi
|
21
|
-
class ReportQuery
|
22
|
-
def initialize(query)
|
23
|
-
@query = query
|
24
|
-
end
|
25
|
-
|
26
|
-
def to_s()
|
27
|
-
return @query
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,82 +0,0 @@
|
|
1
|
-
# Encoding: utf-8
|
2
|
-
#
|
3
|
-
# Copyright:: Copyright 2018, 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
|
-
# Class with methods to aid in building AWQL for reports.
|
19
|
-
|
20
|
-
require 'adwords_api/query_utils/query_builder'
|
21
|
-
require 'adwords_api/query_utils/report_query'
|
22
|
-
|
23
|
-
module AdwordsApi
|
24
|
-
class ReportQueryBuilder < QueryBuilder
|
25
|
-
def initialize(api)
|
26
|
-
super(api)
|
27
|
-
@select = nil
|
28
|
-
@from = nil
|
29
|
-
@during_range = nil
|
30
|
-
@during_start = nil
|
31
|
-
@during_end = nil
|
32
|
-
yield self if block_given?
|
33
|
-
end
|
34
|
-
|
35
|
-
def configure()
|
36
|
-
yield self
|
37
|
-
end
|
38
|
-
|
39
|
-
def select(*fields)
|
40
|
-
@select = fields
|
41
|
-
end
|
42
|
-
|
43
|
-
def from(report_name)
|
44
|
-
@from = report_name
|
45
|
-
end
|
46
|
-
|
47
|
-
def during_date_range(date_range)
|
48
|
-
@during_range = date_range
|
49
|
-
end
|
50
|
-
|
51
|
-
def during(start_date, end_date)
|
52
|
-
@during_start = start_date
|
53
|
-
@during_end = end_date
|
54
|
-
end
|
55
|
-
|
56
|
-
def build()
|
57
|
-
raise ArgumentError,
|
58
|
-
'Must specify SELECT clause for valid AWQL' if @select.nil?
|
59
|
-
raise ArgumentError,
|
60
|
-
'Must specify FROM clause for valid AWQL' if @from.nil?
|
61
|
-
if !@during_range.nil? && (!@during_start.nil? || !@during_end.nil?)
|
62
|
-
raise ArgumentError,
|
63
|
-
'Cannot specify both date range and start/end dates.'
|
64
|
-
end
|
65
|
-
result = sprintf('SELECT %s', @select.join(', '))
|
66
|
-
result += sprintf(' FROM %s', @from)
|
67
|
-
result += build_where()
|
68
|
-
if !@during_range.nil?
|
69
|
-
result += sprintf(' DURING %s', @during_range)
|
70
|
-
elsif !@during_start.nil? || !@during_end.nil?
|
71
|
-
if @during_start.nil?
|
72
|
-
raise ArgumentError, 'Cannot specify end date without start date.'
|
73
|
-
elsif @during_end.nil?
|
74
|
-
raise ArgumentError, 'Cannot specify start date without end date.'
|
75
|
-
end
|
76
|
-
result += sprintf(' DURING %s,%s', @during_start, @during_end)
|
77
|
-
end
|
78
|
-
@api.utils_reporter.report_query_builder_used()
|
79
|
-
return ReportQuery.new(result)
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
# Encoding: utf-8
|
2
|
-
#
|
3
|
-
# Copyright:: Copyright 2018, 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
|
-
# Class to hold a generated AWQL query and aid in paging for services.
|
19
|
-
|
20
|
-
module AdwordsApi
|
21
|
-
class ServiceQuery
|
22
|
-
def initialize(query, start_index, page_size)
|
23
|
-
@query = query
|
24
|
-
@start_index = start_index
|
25
|
-
@page_size = page_size
|
26
|
-
end
|
27
|
-
|
28
|
-
def has_next(page)
|
29
|
-
raise ArgumentError,
|
30
|
-
'Cannot page through query with no LIMIT clause.' if @start_index.nil?
|
31
|
-
return @start_index + @page_size < page[:total_num_entries]
|
32
|
-
end
|
33
|
-
|
34
|
-
# Determining whether another page exists when dealing with bid landscapes
|
35
|
-
# is different from other types of queries. Use this method for those cases.
|
36
|
-
def has_next_landscape_page(page)
|
37
|
-
raise ArgumentError,
|
38
|
-
'Cannot page through query with no LIMIT clause.' if @start_index.nil?
|
39
|
-
return false unless page[:entries]
|
40
|
-
total_landscape_points_in_page = 0
|
41
|
-
page[:entries].each do |landscape|
|
42
|
-
total_landscape_points_in_page += landscape[:landscape_points].size
|
43
|
-
end
|
44
|
-
return total_landscape_points_in_page >= @page_size
|
45
|
-
end
|
46
|
-
|
47
|
-
def next_page()
|
48
|
-
raise ArgumentError,
|
49
|
-
'Cannot page through query with no LIMIT clause.' if @start_index.nil?
|
50
|
-
@start_index += @page_size
|
51
|
-
return self
|
52
|
-
end
|
53
|
-
|
54
|
-
def to_s()
|
55
|
-
query = @query
|
56
|
-
unless @start_index.nil?
|
57
|
-
query += sprintf(' LIMIT %s,%s', @start_index, @page_size)
|
58
|
-
end
|
59
|
-
return query
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
# Encoding: utf-8
|
2
|
-
#
|
3
|
-
# Copyright:: Copyright 2018, 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
|
-
# Class with methods to aid in building AWQL for services.
|
19
|
-
|
20
|
-
require 'adwords_api/query_utils/query_builder'
|
21
|
-
require 'adwords_api/query_utils/service_query'
|
22
|
-
require 'set'
|
23
|
-
|
24
|
-
module AdwordsApi
|
25
|
-
class ServiceQueryBuilder < QueryBuilder
|
26
|
-
def initialize(api)
|
27
|
-
super(api)
|
28
|
-
@select = nil
|
29
|
-
@order = []
|
30
|
-
@start_index = nil
|
31
|
-
@page_size = nil
|
32
|
-
yield self if block_given?
|
33
|
-
end
|
34
|
-
|
35
|
-
def configure()
|
36
|
-
yield self
|
37
|
-
end
|
38
|
-
|
39
|
-
def select(*fields)
|
40
|
-
@select = Set[*fields]
|
41
|
-
end
|
42
|
-
|
43
|
-
def order_by_asc(field)
|
44
|
-
@order << {
|
45
|
-
:field => field,
|
46
|
-
:direction => 'ASC'
|
47
|
-
}
|
48
|
-
end
|
49
|
-
|
50
|
-
def order_by_desc(field)
|
51
|
-
@order << {
|
52
|
-
:field => field,
|
53
|
-
:direction => 'DESC'
|
54
|
-
}
|
55
|
-
end
|
56
|
-
|
57
|
-
def limit(start_index, page_size)
|
58
|
-
@start_index = start_index
|
59
|
-
@page_size = page_size
|
60
|
-
end
|
61
|
-
|
62
|
-
def build()
|
63
|
-
raise ArgumentError,
|
64
|
-
'Must specify SELECT clause for valid AWQL' if @select.nil?
|
65
|
-
if !@start_index.nil? && @page_size.nil?
|
66
|
-
raise ArgumentError, 'Cannot specify start index without page size.'
|
67
|
-
end
|
68
|
-
if !@page_size.nil? && @start_index.nil?
|
69
|
-
raise ArgumentError, 'Cannot specify page size without start index.'
|
70
|
-
end
|
71
|
-
result = sprintf('SELECT %s', @select.to_a.join(', '))
|
72
|
-
result += build_where()
|
73
|
-
unless @order.empty?
|
74
|
-
orders = @order.map do |o|
|
75
|
-
sprintf('%s %s', o[:field], o[:direction])
|
76
|
-
end
|
77
|
-
result += sprintf(' ORDER BY %s', orders.join(', '))
|
78
|
-
end
|
79
|
-
@api.utils_reporter.service_query_builder_used()
|
80
|
-
return ServiceQuery.new(result, @start_index, @page_size)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
@@ -1,97 +0,0 @@
|
|
1
|
-
# Encoding: utf-8
|
2
|
-
#
|
3
|
-
# Copyright:: Copyright 2018, 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
|
-
# Class to aid in constructing where clauses for reporting and service queries.
|
19
|
-
|
20
|
-
module AdwordsApi
|
21
|
-
class WhereBuilder
|
22
|
-
attr_reader :awql
|
23
|
-
|
24
|
-
def initialize(field)
|
25
|
-
@field = field
|
26
|
-
@awql = nil
|
27
|
-
end
|
28
|
-
|
29
|
-
def equal_to(value)
|
30
|
-
@awql = sprintf("%s = %s", @field, value)
|
31
|
-
end
|
32
|
-
|
33
|
-
def not_equal_to(value)
|
34
|
-
@awql = sprintf("%s != %s", @field, value)
|
35
|
-
end
|
36
|
-
|
37
|
-
def greater_than(value)
|
38
|
-
@awql = sprintf("%s > %s", @field, value)
|
39
|
-
end
|
40
|
-
|
41
|
-
def greater_than_or_equal_to(value)
|
42
|
-
@awql = sprintf("%s >= %s", @field, value)
|
43
|
-
end
|
44
|
-
|
45
|
-
def less_than(value)
|
46
|
-
@awql = sprintf("%s < %s", @field, value)
|
47
|
-
end
|
48
|
-
|
49
|
-
def less_than_or_equal_to(value)
|
50
|
-
@awql = sprintf("%s <= %s", @field, value)
|
51
|
-
end
|
52
|
-
|
53
|
-
def starts_with(value)
|
54
|
-
@awql = sprintf("%s STARTS_WITH %s", @field, value)
|
55
|
-
end
|
56
|
-
|
57
|
-
def starts_with_ignore_case(value)
|
58
|
-
@awql = sprintf("%s STARTS_WITH_IGNORE_CASE %s", @field, value)
|
59
|
-
end
|
60
|
-
|
61
|
-
def contains(value)
|
62
|
-
@awql = sprintf("%s CONTAINS %s", @field, value)
|
63
|
-
end
|
64
|
-
|
65
|
-
def contains_ignore_case(value)
|
66
|
-
@awql = sprintf("%s CONTAINS_IGNORE_CASE %s", @field, value)
|
67
|
-
end
|
68
|
-
|
69
|
-
def does_not_contain(value)
|
70
|
-
@awql = sprintf("%s DOES_NOT_CONTAIN %s", @field, value)
|
71
|
-
end
|
72
|
-
|
73
|
-
def does_not_contain_ignore_case(value)
|
74
|
-
@awql = sprintf("%s DOES_NOT_CONTAIN_IGNORE_CASE %s", @field, value)
|
75
|
-
end
|
76
|
-
|
77
|
-
def in(*values)
|
78
|
-
@awql = sprintf("%s IN [%s]", @field, values.join(','))
|
79
|
-
end
|
80
|
-
|
81
|
-
def not_in(*values)
|
82
|
-
@awql = sprintf("%s NOT_IN [%s]", @field, values.join(','))
|
83
|
-
end
|
84
|
-
|
85
|
-
def contains_any(*values)
|
86
|
-
@awql = sprintf("%s CONTAINS_ANY [%s]", @field, values.join(','))
|
87
|
-
end
|
88
|
-
|
89
|
-
def contains_none(*values)
|
90
|
-
@awql = sprintf("%s CONTAINS_NONE [%s]", @field, values.join(','))
|
91
|
-
end
|
92
|
-
|
93
|
-
def contains_all(*values)
|
94
|
-
@awql = sprintf("%s CONTAINS_ALL [%s]", @field, values.join(','))
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|