1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.ads.googleads.v14.common; 18 19import "google/ads/googleads/v14/common/dates.proto"; 20import "google/ads/googleads/v14/enums/device.proto"; 21import "google/ads/googleads/v14/enums/keyword_plan_aggregate_metric_type.proto"; 22import "google/ads/googleads/v14/enums/keyword_plan_competition_level.proto"; 23import "google/ads/googleads/v14/enums/keyword_plan_concept_group_type.proto"; 24import "google/ads/googleads/v14/enums/month_of_year.proto"; 25 26option csharp_namespace = "Google.Ads.GoogleAds.V14.Common"; 27option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/common;common"; 28option java_multiple_files = true; 29option java_outer_classname = "KeywordPlanCommonProto"; 30option java_package = "com.google.ads.googleads.v14.common"; 31option objc_class_prefix = "GAA"; 32option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Common"; 33option ruby_package = "Google::Ads::GoogleAds::V14::Common"; 34 35// Proto file describing Keyword Planner messages. 36 37// Historical metrics specific to the targeting options selected. 38// Targeting options include geographies, network, and so on. 39// Refer to https://support.google.com/google-ads/answer/3022575 for more 40// details. 41message KeywordPlanHistoricalMetrics { 42 // Approximate number of monthly searches on this query, averaged 43 // for the past 12 months. 44 optional int64 avg_monthly_searches = 7; 45 46 // Approximate number of searches on this query for the past twelve months. 47 repeated MonthlySearchVolume monthly_search_volumes = 6; 48 49 // The competition level for the query. 50 google.ads.googleads.v14.enums.KeywordPlanCompetitionLevelEnum 51 .KeywordPlanCompetitionLevel competition = 2; 52 53 // The competition index for the query in the range [0, 100]. 54 // Shows how competitive ad placement is for a keyword. 55 // The level of competition from 0-100 is determined by the number of ad slots 56 // filled divided by the total number of ad slots available. If not enough 57 // data is available, null is returned. 58 optional int64 competition_index = 8; 59 60 // Top of page bid low range (20th percentile) in micros for the keyword. 61 optional int64 low_top_of_page_bid_micros = 9; 62 63 // Top of page bid high range (80th percentile) in micros for the keyword. 64 optional int64 high_top_of_page_bid_micros = 10; 65 66 // Average Cost Per Click in micros for the keyword. 67 optional int64 average_cpc_micros = 11; 68} 69 70// Historical metrics options. 71message HistoricalMetricsOptions { 72 // The year month range for historical metrics. If not specified, metrics 73 // for the past 12 months are returned. 74 // Search metrics are available for the past 4 years. If the search volume is 75 // not available for the entire year_month_range provided, the subset of the 76 // year month range for which search volume is available are returned. 77 optional YearMonthRange year_month_range = 1; 78 79 // Indicates whether to include average cost per click value. 80 // Average CPC is provided only for legacy support. 81 bool include_average_cpc = 2; 82} 83 84// Monthly search volume. 85message MonthlySearchVolume { 86 // The year of the search volume (for example, 2020). 87 optional int64 year = 4; 88 89 // The month of the search volume. 90 google.ads.googleads.v14.enums.MonthOfYearEnum.MonthOfYear month = 2; 91 92 // Approximate number of searches for the month. 93 // A null value indicates the search volume is unavailable for 94 // that month. 95 optional int64 monthly_searches = 5; 96} 97 98// The aggregate metrics specification of the request. 99message KeywordPlanAggregateMetrics { 100 // The list of aggregate metrics to fetch data. 101 repeated google.ads.googleads.v14.enums.KeywordPlanAggregateMetricTypeEnum 102 .KeywordPlanAggregateMetricType aggregate_metric_types = 1; 103} 104 105// The aggregated historical metrics for keyword plan keywords. 106message KeywordPlanAggregateMetricResults { 107 // The aggregate searches for all the keywords segmented by device 108 // for the specified time. 109 // Supports the following device types: MOBILE, TABLET, DESKTOP. 110 // 111 // This is only set when KeywordPlanAggregateMetricTypeEnum.DEVICE is set 112 // in the KeywordPlanAggregateMetrics field in the request. 113 repeated KeywordPlanDeviceSearches device_searches = 1; 114} 115 116// The total searches for the device type during the specified time period. 117message KeywordPlanDeviceSearches { 118 // The device type. 119 google.ads.googleads.v14.enums.DeviceEnum.Device device = 1; 120 121 // The total searches for the device. 122 optional int64 search_count = 2; 123} 124 125// The annotations for the keyword plan keywords. 126message KeywordAnnotations { 127 // The list of concepts for the keyword. 128 repeated KeywordConcept concepts = 1; 129} 130 131// The concept for the keyword. 132message KeywordConcept { 133 // The concept name for the keyword in the concept_group. 134 string name = 1; 135 136 // The concept group of the concept details. 137 ConceptGroup concept_group = 2; 138} 139 140// The concept group for the keyword concept. 141message ConceptGroup { 142 // The concept group name. 143 string name = 1; 144 145 // The concept group type. 146 google.ads.googleads.v14.enums.KeywordPlanConceptGroupTypeEnum 147 .KeywordPlanConceptGroupType type = 2; 148} 149