aboutsummaryrefslogtreecommitdiff
path: root/google/ads/googleads/v1/common/bidding.proto
blob: a971119f2e3ee0b63d635392427caeb7e324ba1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
// Copyright 2019 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.googleads.v1.common;

import "google/ads/googleads/v1/enums/page_one_promoted_strategy_goal.proto";
import "google/ads/googleads/v1/enums/target_impression_share_location.proto";
import "google/protobuf/wrappers.proto";
import "google/api/annotations.proto";

option csharp_namespace = "Google.Ads.GoogleAds.V1.Common";
option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v1/common;common";
option java_multiple_files = true;
option java_outer_classname = "BiddingProto";
option java_package = "com.google.ads.googleads.v1.common";
option objc_class_prefix = "GAA";
option php_namespace = "Google\\Ads\\GoogleAds\\V1\\Common";
option ruby_package = "Google::Ads::GoogleAds::V1::Common";

// Proto file describing bidding schemes.

// Commission is an automatic bidding strategy in which the advertiser pays a
// certain portion of the conversion value.
message Commission {
  // Commission rate defines the portion of the conversion value that the
  // advertiser will be billed. A commission rate of x should be passed into
  // this field as (x * 1,000,000). For example, 106,000 represents a commission
  // rate of 0.106 (10.6%).
  google.protobuf.Int64Value commission_rate_micros = 1;
}

// An automated bidding strategy that raises bids for clicks
// that seem more likely to lead to a conversion and lowers
// them for clicks where they seem less likely.
message EnhancedCpc {

}

// Manual click-based bidding where user pays per click.
message ManualCpc {
  // Whether bids are to be enhanced based on conversion optimizer data.
  google.protobuf.BoolValue enhanced_cpc_enabled = 1;
}

// Manual impression-based bidding where user pays per thousand impressions.
message ManualCpm {

}

// View based bidding where user pays per video view.
message ManualCpv {

}

// An automated bidding strategy that sets bids to help get the most conversions
// for your campaign while spending your budget.
message MaximizeConversions {

}

// An automated bidding strategy which tries to maximize conversion value
// given a daily budget.
message MaximizeConversionValue {
  // The target return on ad spend (ROAS) option. If set, the bid strategy will
  // maximize revenue while averaging the target return on ad spend. If the
  // target ROAS is high, the bid strategy may not be able to spend the full
  // budget. If the target ROAS is not set, the bid strategy will aim to
  // achieve the highest possible ROAS for the budget.
  google.protobuf.DoubleValue target_roas = 1;
}

// An automated bidding strategy which sets CPC bids to target impressions on
// page one, or page one promoted slots on google.com.
message PageOnePromoted {
  // The strategy goal of where impressions are desired to be shown on
  // search result pages.
  google.ads.googleads.v1.enums.PageOnePromotedStrategyGoalEnum.PageOnePromotedStrategyGoal strategy_goal = 1;

  // Maximum bid limit that can be set by the bid strategy.
  // The limit applies to all keywords managed by the strategy.
  google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;

  // Bid multiplier to be applied to the relevant bid estimate (depending on
  // the `strategy_goal`) in determining a keyword's new CPC bid.
  google.protobuf.DoubleValue bid_modifier = 3;

  // Whether the strategy should always follow bid estimate changes, or only
  // increase.
  // If false, always sets a keyword's new bid to the current bid estimate.
  // If true, only updates a keyword's bid if the current bid estimate is
  // greater than the current bid.
  google.protobuf.BoolValue only_raise_cpc_bids = 4;

  // Whether the strategy is allowed to raise bids when the throttling
  // rate of the budget it is serving out of rises above a threshold.
  google.protobuf.BoolValue raise_cpc_bid_when_budget_constrained = 5;

  // Whether the strategy is allowed to raise bids on keywords with
  // lower-range quality scores.
  google.protobuf.BoolValue raise_cpc_bid_when_quality_score_is_low = 6;
}

// An automated bid strategy that sets bids to help get as many conversions as
// possible at the target cost-per-acquisition (CPA) you set.
message TargetCpa {
  // Average CPA target.
  // This target should be greater than or equal to minimum billable unit based
  // on the currency for the account.
  google.protobuf.Int64Value target_cpa_micros = 1;

  // Maximum bid limit that can be set by the bid strategy.
  // The limit applies to all keywords managed by the strategy.
  google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;

  // Minimum bid limit that can be set by the bid strategy.
  // The limit applies to all keywords managed by the strategy.
  google.protobuf.Int64Value cpc_bid_floor_micros = 3;
}

// Target CPM (cost per thousand impressions) is an automated bidding strategy
// that sets bids to optimize performance given the target CPM you set.
message TargetCpm {

}

// An automated bidding strategy that sets bids so that a certain percentage of
// search ads are shown at the top of the first page (or other targeted
// location).
// Next Id = 4
message TargetImpressionShare {
  // The targeted location on the search results page.
  google.ads.googleads.v1.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1;

  // The desired fraction of ads to be shown in the targeted location in micros.
  // E.g. 1% equals 10,000.
  google.protobuf.Int64Value location_fraction_micros = 2;

  // The highest CPC bid the automated bidding system is permitted to specify.
  // This is a required field entered by the advertiser that sets the ceiling
  // and specified in local micros.
  google.protobuf.Int64Value cpc_bid_ceiling_micros = 3;
}

// An automated bidding strategy that sets bids based on the target fraction of
// auctions where the advertiser should outrank a specific competitor.
message TargetOutrankShare {
  // The target fraction of auctions where the advertiser should outrank the
  // competitor.
  // The advertiser outranks the competitor in an auction if either the
  // advertiser appears above the competitor in the search results, or appears
  // in the search results when the competitor does not.
  // Value must be between 1 and 1000000, inclusive.
  google.protobuf.Int32Value target_outrank_share_micros = 1;

  // Competitor's visible domain URL.
  google.protobuf.StringValue competitor_domain = 2;

  // Maximum bid limit that can be set by the bid strategy.
  // The limit applies to all keywords managed by the strategy.
  google.protobuf.Int64Value cpc_bid_ceiling_micros = 3;

  // Whether the strategy should always follow bid estimate changes,
  // or only increase.
  // If false, always set a keyword's new bid to the current bid estimate.
  // If true, only updates a keyword's bid if the current bid estimate is
  // greater than the current bid.
  google.protobuf.BoolValue only_raise_cpc_bids = 4;

  // Whether the strategy is allowed to raise bids on keywords with
  // lower-range quality scores.
  google.protobuf.BoolValue raise_cpc_bid_when_quality_score_is_low = 5;
}

// An automated bidding strategy that helps you maximize revenue while
// averaging a specific target return on ad spend (ROAS).
message TargetRoas {
  // Required. The desired revenue (based on conversion data) per unit of spend.
  // Value must be between 0.01 and 1000.0, inclusive.
  google.protobuf.DoubleValue target_roas = 1;

  // Maximum bid limit that can be set by the bid strategy.
  // The limit applies to all keywords managed by the strategy.
  google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;

  // Minimum bid limit that can be set by the bid strategy.
  // The limit applies to all keywords managed by the strategy.
  google.protobuf.Int64Value cpc_bid_floor_micros = 3;
}

// An automated bid strategy that sets your bids to help get as many clicks
// as possible within your budget.
message TargetSpend {
  // The spend target under which to maximize clicks.
  // A TargetSpend bidder will attempt to spend the smaller of this value
  // or the natural throttling spend amount.
  // If not specified, the budget is used as the spend target.
  google.protobuf.Int64Value target_spend_micros = 1;

  // Maximum bid limit that can be set by the bid strategy.
  // The limit applies to all keywords managed by the strategy.
  google.protobuf.Int64Value cpc_bid_ceiling_micros = 2;
}

// A bidding strategy where bids are a fraction of the advertised price for
// some good or service.
message PercentCpc {
  // Maximum bid limit that can be set by the bid strategy. This is
  // an optional field entered by the advertiser and specified in local micros.
  // Note: A zero value is interpreted in the same way as having bid_ceiling
  // undefined.
  google.protobuf.Int64Value cpc_bid_ceiling_micros = 1;

  // Adjusts the bid for each auction upward or downward, depending on the
  // likelihood of a conversion. Individual bids may exceed
  // cpc_bid_ceiling_micros, but the average bid amount for a campaign should
  // not.
  google.protobuf.BoolValue enhanced_cpc_enabled = 2;
}