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.v16.common; 18 19import "google/ads/googleads/v16/enums/target_frequency_time_unit.proto"; 20import "google/ads/googleads/v16/enums/target_impression_share_location.proto"; 21 22option csharp_namespace = "Google.Ads.GoogleAds.V16.Common"; 23option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v16/common;common"; 24option java_multiple_files = true; 25option java_outer_classname = "BiddingProto"; 26option java_package = "com.google.ads.googleads.v16.common"; 27option objc_class_prefix = "GAA"; 28option php_namespace = "Google\\Ads\\GoogleAds\\V16\\Common"; 29option ruby_package = "Google::Ads::GoogleAds::V16::Common"; 30 31// Proto file describing bidding schemes. 32 33// Commission is an automatic bidding strategy in which the advertiser pays a 34// certain portion of the conversion value. 35message Commission { 36 // Commission rate defines the portion of the conversion value that the 37 // advertiser will be billed. A commission rate of x should be passed into 38 // this field as (x * 1,000,000). For example, 106,000 represents a commission 39 // rate of 0.106 (10.6%). 40 optional int64 commission_rate_micros = 2; 41} 42 43// An automated bidding strategy that raises bids for clicks 44// that seem more likely to lead to a conversion and lowers 45// them for clicks where they seem less likely. 46// 47// This bidding strategy is deprecated and cannot be created anymore. Use 48// ManualCpc with enhanced_cpc_enabled set to true for equivalent functionality. 49message EnhancedCpc {} 50 51// Manual bidding strategy that allows advertiser to set the bid per 52// advertiser-specified action. 53message ManualCpa {} 54 55// Manual click-based bidding where user pays per click. 56message ManualCpc { 57 // Whether bids are to be enhanced based on conversion optimizer data. 58 optional bool enhanced_cpc_enabled = 2; 59} 60 61// Manual impression-based bidding where user pays per thousand impressions. 62message ManualCpm {} 63 64// View based bidding where user pays per video view. 65message ManualCpv {} 66 67// An automated bidding strategy to help get the most conversions for your 68// campaigns while spending your budget. 69message MaximizeConversions { 70 // Maximum bid limit that can be set by the bid strategy. 71 // The limit applies to all keywords managed by the strategy. 72 // Mutable for portfolio bidding strategies only. 73 int64 cpc_bid_ceiling_micros = 2; 74 75 // Minimum bid limit that can be set by the bid strategy. 76 // The limit applies to all keywords managed by the strategy. 77 // Mutable for portfolio bidding strategies only. 78 int64 cpc_bid_floor_micros = 3; 79 80 // The target cost-per-action (CPA) option. This is the average amount that 81 // you would like to spend per conversion action specified in micro units of 82 // the bidding strategy's currency. If set, the bid strategy will get as many 83 // conversions as possible at or below the target cost-per-action. If the 84 // target CPA is not set, the bid strategy will aim to achieve the lowest 85 // possible CPA given the budget. 86 int64 target_cpa_micros = 4; 87} 88 89// An automated bidding strategy to help get the most conversion value for your 90// campaigns while spending your budget. 91message MaximizeConversionValue { 92 // The target return on ad spend (ROAS) option. If set, the bid strategy will 93 // maximize revenue while averaging the target return on ad spend. If the 94 // target ROAS is high, the bid strategy may not be able to spend the full 95 // budget. If the target ROAS is not set, the bid strategy will aim to 96 // achieve the highest possible ROAS for the budget. 97 double target_roas = 2; 98 99 // Maximum bid limit that can be set by the bid strategy. 100 // The limit applies to all keywords managed by the strategy. 101 // Mutable for portfolio bidding strategies only. 102 int64 cpc_bid_ceiling_micros = 3; 103 104 // Minimum bid limit that can be set by the bid strategy. 105 // The limit applies to all keywords managed by the strategy. 106 // Mutable for portfolio bidding strategies only. 107 int64 cpc_bid_floor_micros = 4; 108} 109 110// An automated bid strategy that sets bids to help get as many conversions as 111// possible at the target cost-per-acquisition (CPA) you set. 112message TargetCpa { 113 // Average CPA target. 114 // This target should be greater than or equal to minimum billable unit based 115 // on the currency for the account. 116 optional int64 target_cpa_micros = 4; 117 118 // Maximum bid limit that can be set by the bid strategy. 119 // The limit applies to all keywords managed by the strategy. 120 // This should only be set for portfolio bid strategies. 121 optional int64 cpc_bid_ceiling_micros = 5; 122 123 // Minimum bid limit that can be set by the bid strategy. 124 // The limit applies to all keywords managed by the strategy. 125 // This should only be set for portfolio bid strategies. 126 optional int64 cpc_bid_floor_micros = 6; 127} 128 129// Target CPM (cost per thousand impressions) is an automated bidding strategy 130// that sets bids to optimize performance given the target CPM you set. 131message TargetCpm { 132 // Additional information related to bidding goal. 133 oneof goal { 134 // Target Frequency bidding goal details. 135 TargetCpmTargetFrequencyGoal target_frequency_goal = 1; 136 } 137} 138 139// Target Frequency bidding goal details. 140message TargetCpmTargetFrequencyGoal { 141 // Target Frequency count representing how many times you want to reach 142 // a single user. 143 int64 target_count = 1; 144 145 // Time window expressing the period over which you want to reach 146 // the specified target_count. 147 google.ads.googleads.v16.enums.TargetFrequencyTimeUnitEnum 148 .TargetFrequencyTimeUnit time_unit = 2; 149} 150 151// An automated bidding strategy that sets bids so that a certain percentage of 152// search ads are shown at the top of the first page (or other targeted 153// location). 154message TargetImpressionShare { 155 // The targeted location on the search results page. 156 google.ads.googleads.v16.enums.TargetImpressionShareLocationEnum 157 .TargetImpressionShareLocation location = 1; 158 159 // The chosen fraction of ads to be shown in the targeted location in micros. 160 // For example, 1% equals 10,000. 161 optional int64 location_fraction_micros = 4; 162 163 // The highest CPC bid the automated bidding system is permitted to specify. 164 // This is a required field entered by the advertiser that sets the ceiling 165 // and specified in local micros. 166 optional int64 cpc_bid_ceiling_micros = 5; 167} 168 169// An automated bidding strategy that helps you maximize revenue while 170// averaging a specific target return on ad spend (ROAS). 171message TargetRoas { 172 // Required. The chosen revenue (based on conversion data) per unit of spend. 173 // Value must be between 0.01 and 1000.0, inclusive. 174 optional double target_roas = 4; 175 176 // Maximum bid limit that can be set by the bid strategy. 177 // The limit applies to all keywords managed by the strategy. 178 // This should only be set for portfolio bid strategies. 179 optional int64 cpc_bid_ceiling_micros = 5; 180 181 // Minimum bid limit that can be set by the bid strategy. 182 // The limit applies to all keywords managed by the strategy. 183 // This should only be set for portfolio bid strategies. 184 optional int64 cpc_bid_floor_micros = 6; 185} 186 187// An automated bid strategy that sets your bids to help get as many clicks 188// as possible within your budget. 189message TargetSpend { 190 // The spend target under which to maximize clicks. 191 // A TargetSpend bidder will attempt to spend the smaller of this value 192 // or the natural throttling spend amount. 193 // If not specified, the budget is used as the spend target. 194 // This field is deprecated and should no longer be used. See 195 // https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html 196 // for details. 197 optional int64 target_spend_micros = 3 [deprecated = true]; 198 199 // Maximum bid limit that can be set by the bid strategy. 200 // The limit applies to all keywords managed by the strategy. 201 optional int64 cpc_bid_ceiling_micros = 4; 202} 203 204// A bidding strategy where bids are a fraction of the advertised price for 205// some good or service. 206message PercentCpc { 207 // Maximum bid limit that can be set by the bid strategy. This is 208 // an optional field entered by the advertiser and specified in local micros. 209 // Note: A zero value is interpreted in the same way as having bid_ceiling 210 // undefined. 211 optional int64 cpc_bid_ceiling_micros = 3; 212 213 // Adjusts the bid for each auction upward or downward, depending on the 214 // likelihood of a conversion. Individual bids may exceed 215 // cpc_bid_ceiling_micros, but the average bid amount for a campaign should 216 // not. 217 optional bool enhanced_cpc_enabled = 4; 218} 219