// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package google.ads.searchads360.v0.services; import "google/ads/searchads360/v0/common/metrics.proto"; import "google/ads/searchads360/v0/common/segments.proto"; import "google/ads/searchads360/v0/common/value.proto"; import "google/ads/searchads360/v0/enums/summary_row_setting.proto"; import "google/ads/searchads360/v0/resources/accessible_bidding_strategy.proto"; import "google/ads/searchads360/v0/resources/ad_group.proto"; import "google/ads/searchads360/v0/resources/ad_group_ad.proto"; import "google/ads/searchads360/v0/resources/ad_group_ad_label.proto"; import "google/ads/searchads360/v0/resources/ad_group_asset.proto"; import "google/ads/searchads360/v0/resources/ad_group_asset_set.proto"; import "google/ads/searchads360/v0/resources/ad_group_audience_view.proto"; import "google/ads/searchads360/v0/resources/ad_group_bid_modifier.proto"; import "google/ads/searchads360/v0/resources/ad_group_criterion.proto"; import "google/ads/searchads360/v0/resources/ad_group_criterion_label.proto"; import "google/ads/searchads360/v0/resources/ad_group_label.proto"; import "google/ads/searchads360/v0/resources/age_range_view.proto"; import "google/ads/searchads360/v0/resources/asset.proto"; import "google/ads/searchads360/v0/resources/asset_group.proto"; import "google/ads/searchads360/v0/resources/asset_group_asset.proto"; import "google/ads/searchads360/v0/resources/asset_group_listing_group_filter.proto"; import "google/ads/searchads360/v0/resources/asset_group_signal.proto"; import "google/ads/searchads360/v0/resources/asset_group_top_combination_view.proto"; import "google/ads/searchads360/v0/resources/asset_set.proto"; import "google/ads/searchads360/v0/resources/asset_set_asset.proto"; import "google/ads/searchads360/v0/resources/audience.proto"; import "google/ads/searchads360/v0/resources/bidding_strategy.proto"; import "google/ads/searchads360/v0/resources/campaign.proto"; import "google/ads/searchads360/v0/resources/campaign_asset.proto"; import "google/ads/searchads360/v0/resources/campaign_asset_set.proto"; import "google/ads/searchads360/v0/resources/campaign_audience_view.proto"; import "google/ads/searchads360/v0/resources/campaign_budget.proto"; import "google/ads/searchads360/v0/resources/campaign_criterion.proto"; import "google/ads/searchads360/v0/resources/campaign_label.proto"; import "google/ads/searchads360/v0/resources/cart_data_sales_view.proto"; import "google/ads/searchads360/v0/resources/conversion.proto"; import "google/ads/searchads360/v0/resources/conversion_action.proto"; import "google/ads/searchads360/v0/resources/conversion_custom_variable.proto"; import "google/ads/searchads360/v0/resources/customer.proto"; import "google/ads/searchads360/v0/resources/customer_asset.proto"; import "google/ads/searchads360/v0/resources/customer_asset_set.proto"; import "google/ads/searchads360/v0/resources/customer_client.proto"; import "google/ads/searchads360/v0/resources/customer_manager_link.proto"; import "google/ads/searchads360/v0/resources/dynamic_search_ads_search_term_view.proto"; import "google/ads/searchads360/v0/resources/gender_view.proto"; import "google/ads/searchads360/v0/resources/geo_target_constant.proto"; import "google/ads/searchads360/v0/resources/keyword_view.proto"; import "google/ads/searchads360/v0/resources/label.proto"; import "google/ads/searchads360/v0/resources/language_constant.proto"; import "google/ads/searchads360/v0/resources/location_view.proto"; import "google/ads/searchads360/v0/resources/product_bidding_category_constant.proto"; import "google/ads/searchads360/v0/resources/product_group_view.proto"; import "google/ads/searchads360/v0/resources/shopping_performance_view.proto"; import "google/ads/searchads360/v0/resources/user_list.proto"; import "google/ads/searchads360/v0/resources/visit.proto"; import "google/ads/searchads360/v0/resources/webpage_view.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/protobuf/field_mask.proto"; option csharp_namespace = "Google.Ads.SearchAds360.V0.Services"; option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/services;services"; option java_multiple_files = true; option java_outer_classname = "SearchAds360ServiceProto"; option java_package = "com.google.ads.searchads360.v0.services"; option objc_class_prefix = "GASA360"; option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Services"; option ruby_package = "Google::Ads::SearchAds360::V0::Services"; // Proto file describing the SearchAds360Service. // Service to fetch data and metrics across resources. service SearchAds360Service { option (google.api.default_host) = "searchads360.googleapis.com"; option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/doubleclicksearch"; // Returns all rows that match the search query. // // List of thrown errors: // [AuthenticationError]() // [AuthorizationError]() // [HeaderError]() // [InternalError]() // [QueryError]() // [QuotaError]() // [RequestError]() rpc Search(SearchSearchAds360Request) returns (SearchSearchAds360Response) { option (google.api.http) = { post: "/v0/customers/{customer_id=*}/searchAds360:search" body: "*" }; option (google.api.method_signature) = "customer_id,query"; } // Returns all rows that match the search stream query. // // List of thrown errors: // [AuthenticationError]() // [AuthorizationError]() // [HeaderError]() // [InternalError]() // [QueryError]() // [QuotaError]() // [RequestError]() rpc SearchStream(SearchSearchAds360StreamRequest) returns (stream SearchSearchAds360StreamResponse) { option (google.api.http) = { post: "/v0/customers/{customer_id=*}/searchAds360:searchStream" body: "*" }; option (google.api.method_signature) = "customer_id,query"; } } // Request message for // [SearchAds360Service.Search][google.ads.searchads360.v0.services.SearchAds360Service.Search]. message SearchSearchAds360Request { // Required. The ID of the customer being queried. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The query string. string query = 2 [(google.api.field_behavior) = REQUIRED]; // Token of the page to retrieve. If not specified, the first // page of results will be returned. Use the value obtained from // `next_page_token` in the previous response in order to request // the next page of results. string page_token = 3; // Number of elements to retrieve in a single page. // When too large a page is requested, the server may decide to // further limit the number of returned resources. int32 page_size = 4; // If true, the request is validated but not executed. bool validate_only = 5; // If true, the total number of results that match the query ignoring the // LIMIT clause will be included in the response. // Default is false. bool return_total_results_count = 7; // Determines whether a summary row will be returned. By default, summary row // is not returned. If requested, the summary row will be sent in a response // by itself after all other query results are returned. google.ads.searchads360.v0.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 8; } // Response message for // [SearchAds360Service.Search][google.ads.searchads360.v0.services.SearchAds360Service.Search]. message SearchSearchAds360Response { // The list of rows that matched the query. repeated SearchAds360Row results = 1; // Pagination token used to retrieve the next page of results. // Pass the content of this string as the `page_token` attribute of // the next request. `next_page_token` is not returned for the last // page. string next_page_token = 2; // Total number of results that match the query ignoring the LIMIT // clause. int64 total_results_count = 3; // FieldMask that represents what fields were requested by the user. google.protobuf.FieldMask field_mask = 5; // Summary row that contains summary of metrics in results. // Summary of metrics means aggregation of metrics across all results, // here aggregation could be sum, average, rate, etc. SearchAds360Row summary_row = 6; // The headers of the custom columns in the results. repeated CustomColumnHeader custom_column_headers = 7; // The headers of the conversion custom metrics in the results. repeated ConversionCustomMetricHeader conversion_custom_metric_headers = 9; // The headers of the conversion custom dimensions in the results. repeated ConversionCustomDimensionHeader conversion_custom_dimension_headers = 10; // The headers of the raw event conversion metrics in the results. repeated RawEventConversionMetricHeader raw_event_conversion_metric_headers = 11; // The headers of the raw event conversion dimensions in the results. repeated RawEventConversionDimensionHeader raw_event_conversion_dimension_headers = 12; } // Request message for // [SearchAds360Service.SearchStream][google.ads.searchads360.v0.services.SearchAds360Service.SearchStream]. message SearchSearchAds360StreamRequest { // Required. The ID of the customer being queried. string customer_id = 1 [(google.api.field_behavior) = REQUIRED]; // Required. The query string. string query = 2 [(google.api.field_behavior) = REQUIRED]; // The number of rows that are returned in each stream response batch. // When too large batch is requested, the server may decide to further limit // the number of returned rows. int32 batch_size = 4; // Determines whether a summary row will be returned. By default, summary row // is not returned. If requested, the summary row will be sent in a response // by itself after all other query results are returned. google.ads.searchads360.v0.enums.SummaryRowSettingEnum.SummaryRowSetting summary_row_setting = 3; } // Response message for // [SearchAds360Service.SearchStream][google.ads.searchads360.v0.services.SearchAds360Service.SearchStream]. message SearchSearchAds360StreamResponse { // The list of rows that matched the query. repeated SearchAds360Row results = 1; // FieldMask that represents what fields were requested by the user. google.protobuf.FieldMask field_mask = 2; // Summary row that contains summary of metrics in results. // Summary of metrics means aggregation of metrics across all results, // here aggregation could be sum, average, rate, etc. SearchAds360Row summary_row = 3; // The headers of the custom columns in the results. repeated CustomColumnHeader custom_column_headers = 5; // The headers of the conversion custom metrics in the results. repeated ConversionCustomMetricHeader conversion_custom_metric_headers = 7; // The headers of the conversion custom dimension in the results. repeated ConversionCustomDimensionHeader conversion_custom_dimension_headers = 8; // The headers of the raw event conversion metrics in the results. repeated RawEventConversionMetricHeader raw_event_conversion_metric_headers = 9; // The headers of the raw event conversion dimensions in the results. repeated RawEventConversionDimensionHeader raw_event_conversion_dimension_headers = 10; // The unique id of the request that is used for debugging purposes. string request_id = 4; } // A returned row from the query. message SearchAds360Row { // The ad group referenced in the query. google.ads.searchads360.v0.resources.AdGroup ad_group = 3; // The ad referenced in the query. google.ads.searchads360.v0.resources.AdGroupAd ad_group_ad = 16; // The ad group ad label referenced in the query. google.ads.searchads360.v0.resources.AdGroupAdLabel ad_group_ad_label = 120; // The ad group asset referenced in the query. google.ads.searchads360.v0.resources.AdGroupAsset ad_group_asset = 154; // The ad group asset set referenced in the query. google.ads.searchads360.v0.resources.AdGroupAssetSet ad_group_asset_set = 196; // The ad group audience view referenced in the query. google.ads.searchads360.v0.resources.AdGroupAudienceView ad_group_audience_view = 57; // The bid modifier referenced in the query. google.ads.searchads360.v0.resources.AdGroupBidModifier ad_group_bid_modifier = 24; // The criterion referenced in the query. google.ads.searchads360.v0.resources.AdGroupCriterion ad_group_criterion = 17; // The ad group criterion label referenced in the query. google.ads.searchads360.v0.resources.AdGroupCriterionLabel ad_group_criterion_label = 121; // The ad group label referenced in the query. google.ads.searchads360.v0.resources.AdGroupLabel ad_group_label = 115; // The age range view referenced in the query. google.ads.searchads360.v0.resources.AgeRangeView age_range_view = 48; // The asset referenced in the query. google.ads.searchads360.v0.resources.Asset asset = 105; // The asset group asset referenced in the query. google.ads.searchads360.v0.resources.AssetGroupAsset asset_group_asset = 173; // The asset group signal referenced in the query. google.ads.searchads360.v0.resources.AssetGroupSignal asset_group_signal = 191; // The asset group listing group filter referenced in the query. google.ads.searchads360.v0.resources.AssetGroupListingGroupFilter asset_group_listing_group_filter = 182; // The asset group top combination view referenced in the query. google.ads.searchads360.v0.resources.AssetGroupTopCombinationView asset_group_top_combination_view = 199; // The asset group referenced in the query. google.ads.searchads360.v0.resources.AssetGroup asset_group = 172; // The asset set asset referenced in the query. google.ads.searchads360.v0.resources.AssetSetAsset asset_set_asset = 180; // The asset set referenced in the query. google.ads.searchads360.v0.resources.AssetSet asset_set = 179; // The bidding strategy referenced in the query. google.ads.searchads360.v0.resources.BiddingStrategy bidding_strategy = 18; // The campaign budget referenced in the query. google.ads.searchads360.v0.resources.CampaignBudget campaign_budget = 19; // The campaign referenced in the query. google.ads.searchads360.v0.resources.Campaign campaign = 2; // The campaign asset referenced in the query. google.ads.searchads360.v0.resources.CampaignAsset campaign_asset = 142; // The campaign asset set referenced in the query. google.ads.searchads360.v0.resources.CampaignAssetSet campaign_asset_set = 181; // The campaign audience view referenced in the query. google.ads.searchads360.v0.resources.CampaignAudienceView campaign_audience_view = 69; // The campaign criterion referenced in the query. google.ads.searchads360.v0.resources.CampaignCriterion campaign_criterion = 20; // The campaign label referenced in the query. google.ads.searchads360.v0.resources.CampaignLabel campaign_label = 108; // The cart data sales view referenced in the query. google.ads.searchads360.v0.resources.CartDataSalesView cart_data_sales_view = 221; // The Audience referenced in the query. google.ads.searchads360.v0.resources.Audience audience = 190; // The conversion action referenced in the query. google.ads.searchads360.v0.resources.ConversionAction conversion_action = 103; // The conversion custom variable referenced in the query. google.ads.searchads360.v0.resources.ConversionCustomVariable conversion_custom_variable = 153; // The customer referenced in the query. google.ads.searchads360.v0.resources.Customer customer = 1; // The customer asset referenced in the query. google.ads.searchads360.v0.resources.CustomerAsset customer_asset = 155; // The customer asset set referenced in the query. google.ads.searchads360.v0.resources.CustomerAssetSet customer_asset_set = 195; // The accessible bidding strategy referenced in the query. google.ads.searchads360.v0.resources.AccessibleBiddingStrategy accessible_bidding_strategy = 169; // The CustomerManagerLink referenced in the query. google.ads.searchads360.v0.resources.CustomerManagerLink customer_manager_link = 61; // The CustomerClient referenced in the query. google.ads.searchads360.v0.resources.CustomerClient customer_client = 70; // The dynamic search ads search term view referenced in the query. google.ads.searchads360.v0.resources.DynamicSearchAdsSearchTermView dynamic_search_ads_search_term_view = 106; // The gender view referenced in the query. google.ads.searchads360.v0.resources.GenderView gender_view = 40; // The geo target constant referenced in the query. google.ads.searchads360.v0.resources.GeoTargetConstant geo_target_constant = 23; // The keyword view referenced in the query. google.ads.searchads360.v0.resources.KeywordView keyword_view = 21; // The label referenced in the query. google.ads.searchads360.v0.resources.Label label = 52; // The language constant referenced in the query. google.ads.searchads360.v0.resources.LanguageConstant language_constant = 55; // The location view referenced in the query. google.ads.searchads360.v0.resources.LocationView location_view = 123; // The Product Bidding Category referenced in the query. google.ads.searchads360.v0.resources.ProductBiddingCategoryConstant product_bidding_category_constant = 109; // The product group view referenced in the query. google.ads.searchads360.v0.resources.ProductGroupView product_group_view = 54; // The shopping performance view referenced in the query. google.ads.searchads360.v0.resources.ShoppingPerformanceView shopping_performance_view = 117; // The user list referenced in the query. google.ads.searchads360.v0.resources.UserList user_list = 38; // The webpage view referenced in the query. google.ads.searchads360.v0.resources.WebpageView webpage_view = 162; // The event level visit referenced in the query. google.ads.searchads360.v0.resources.Visit visit = 203; // The event level conversion referenced in the query. google.ads.searchads360.v0.resources.Conversion conversion = 206; // The metrics. google.ads.searchads360.v0.common.Metrics metrics = 4; // The segments. google.ads.searchads360.v0.common.Segments segments = 102; // The custom columns. repeated google.ads.searchads360.v0.common.Value custom_columns = 156; } // Message for custom column header. message CustomColumnHeader { // The custom column ID. int64 id = 1; // The user defined name of the custom column. string name = 2; // True when the custom column references metrics. bool references_metrics = 3; } // Message for conversion custom metric header. message ConversionCustomMetricHeader { // The conversion custom metric ID. int64 id = 1; // The user defined name of the conversion custom metric. string name = 2; } // Message for conversion custom dimension header. message ConversionCustomDimensionHeader { // The conversion custom dimension ID. int64 id = 1; // The user defined name of the conversion custom dimension. string name = 2; } // Message for raw event conversion metric header. message RawEventConversionMetricHeader { // The conversion custom variable ID. int64 id = 1; // The user defined name of the raw event metric. string name = 2; } // Message for raw event conversion dimension header. message RawEventConversionDimensionHeader { // The conversion custom variable ID. int64 id = 1; // The user defined name of the raw event dimension. string name = 2; }