/common/bidding.proto

--- v17/common/bidding.proto    2024-06-05 23:17:09.000000000 +0000
+++ v17-1/common/bidding.proto  2024-08-06 12:40:16.000000000 +0000
@@ -1,218 +1,251 @@
 
// Copyright 2024 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.v17.common;

+import "google/ads/googleads/v17/enums/fixed_cpm_goal.proto";
+import "google/ads/googleads/v17/enums/fixed_cpm_target_frequency_time_unit.proto";
 
import "google/ads/googleads/v17/enums/target_frequency_time_unit.proto";
 
import "google/ads/googleads/v17/enums/target_impression_share_location.proto";

 option csharp_namespace
= "Google.Ads.GoogleAds.V17.Common";
 option go_package
= "google.golang.org/genproto/googleapis/ads/googleads/v17/common;common";
 option java_multiple_files
= true;
 option java_outer_classname
= "BiddingProto";
 option java_package
= "com.google.ads.googleads.v17.common";
 option objc_class_prefix
= "GAA";
 option php_namespace
= "Google\\Ads\\GoogleAds\\V17\\Common";
 option ruby_package
= "Google::Ads::GoogleAds::V17::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%).
   optional int64 commission_rate_micros
= 2;
 
}

 
// 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.
 
//
 
// This bidding strategy is deprecated and cannot be created anymore. Use
 
// ManualCpc with enhanced_cpc_enabled set to true for equivalent functionality.
 message
EnhancedCpc {}

 
// Manual bidding strategy that allows advertiser to set the bid per
 
// advertiser-specified action.
 message
ManualCpa {}

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

 
// 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 to help get the most conversions for your
 
// campaigns while spending your budget.
 message
MaximizeConversions {
   
// Maximum bid limit that can be set by the bid strategy.
   
// The limit applies to all keywords managed by the strategy.
   
// Mutable for portfolio bidding strategies only.
   int64 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.
   
// Mutable for portfolio bidding strategies only.
   int64 cpc_bid_floor_micros
= 3;

   
// The target cost-per-action (CPA) option. This is the average amount that
   
// you would like to spend per conversion action specified in micro units of
   
// the bidding strategy's currency. If set, the bid strategy will get as many
   
// conversions as possible at or below the target cost-per-action. If the
   
// target CPA is not set, the bid strategy will aim to achieve the lowest
   
// possible CPA given the budget.
   int64 target_cpa_micros
= 4;
 
}

 
// An automated bidding strategy to help get the most conversion value for your
 
// campaigns while spending your 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.
   
double target_roas = 2;

   
// Maximum bid limit that can be set by the bid strategy.
   
// The limit applies to all keywords managed by the strategy.
   
// Mutable for portfolio bidding strategies only.
   int64 cpc_bid_ceiling_micros
= 3;

   
// Minimum bid limit that can be set by the bid strategy.
   
// The limit applies to all keywords managed by the strategy.
   
// Mutable for portfolio bidding strategies only.
   int64 cpc_bid_floor_micros
= 4;
 
}

 
// 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.
   optional int64 target_cpa_micros
= 4;

   
// Maximum bid limit that can be set by the bid strategy.
   
// The limit applies to all keywords managed by the strategy.
   
// This should only be set for portfolio bid strategies.
   optional int64 cpc_bid_ceiling_micros
= 5;

   
// Minimum bid limit that can be set by the bid strategy.
   
// The limit applies to all keywords managed by the strategy.
   
// This should only be set for portfolio bid strategies.
   optional int64 cpc_bid_floor_micros
= 6;
 
}

 
// 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 {
   
// Additional information related to bidding goal.
   oneof goal
{
     
// Target Frequency bidding goal details.
     
TargetCpmTargetFrequencyGoal target_frequency_goal = 1;
   
}
 
}

 
// Target Frequency bidding goal details.
 message
TargetCpmTargetFrequencyGoal {
   
// Target Frequency count representing how many times you want to reach
   
// a single user.
   int64 target_count
= 1;

   
// Time window expressing the period over which you want to reach
   
// the specified target_count.
   google
.ads.googleads.v17.enums.TargetFrequencyTimeUnitEnum
       
.TargetFrequencyTimeUnit time_unit = 2;
 
}

 
// 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).
 message
TargetImpressionShare {
   
// The targeted location on the search results page.
   google
.ads.googleads.v17.enums.TargetImpressionShareLocationEnum
       
.TargetImpressionShareLocation location = 1;

   
// The chosen fraction of ads to be shown in the targeted location in micros.
   
// For example, 1% equals 10,000.
   optional int64 location_fraction_micros
= 4;

   
// 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.
   optional int64 cpc_bid_ceiling_micros
= 5;
 
}

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

   
// Maximum bid limit that can be set by the bid strategy.
   
// The limit applies to all keywords managed by the strategy.
   
// This should only be set for portfolio bid strategies.
   optional int64 cpc_bid_ceiling_micros
= 5;

   
// Minimum bid limit that can be set by the bid strategy.
   
// The limit applies to all keywords managed by the strategy.
   
// This should only be set for portfolio bid strategies.
   optional int64 cpc_bid_floor_micros
= 6;
 
}

 
// An automated bid strategy that sets your bids to help get as many clicks
 
// as possible within your budget.
 message
TargetSpend {
   
// Deprecated: 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.
   
// This field is deprecated and should no longer be used. See
   
// https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
   
// for details.
   optional int64 target_spend_micros
= 3 [deprecated = true];

   
// Maximum bid limit that can be set by the bid strategy.
   
// The limit applies to all keywords managed by the strategy.
   optional int64 cpc_bid_ceiling_micros
= 4;
 
}

 
// 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.
   optional int64 cpc_bid_ceiling_micros
= 3;

   
// 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.
   optional
bool enhanced_cpc_enabled = 4;
 
}
+
+// Fixed CPM (cost per thousand impression) bidding strategy. A manual bidding
+// strategy with a fixed CPM.
+message FixedCpm {
+  // Fixed CPM bidding goal. Determines the exact bidding optimization
+  // parameters.
+  google.ads.googleads.v17.enums.FixedCpmGoalEnum.FixedCpmGoal goal = 1;
+
+  // Additional information related to bidding goal.
+  oneof goal_info {
+    // Target frequency bidding goal details.
+    FixedCpmTargetFrequencyGoalInfo target_frequency_info = 2;
+  }
+}
+
+// Target frequency bidding goal details for Fixed CPM bidding strategy. Only
+// relevant if the goal of the bidding strategy is `TARGET_FREQUENCY`.
+message FixedCpmTargetFrequencyGoalInfo {
+  // Target frequency count represents the number of times an advertiser wants
+  // to show the ad to target a single user.
+  int64 target_count = 1;
+
+  // Time window expressing the period over which you want to reach
+  // the specified target_count.
+  google.ads.googleads.v17.enums.FixedCpmTargetFrequencyTimeUnitEnum
+      .FixedCpmTargetFrequencyTimeUnit time_unit = 2;
+}
+
+// Target CPV (cost per view) bidding strategy. An automated bidding strategy
+// that sets bids to optimize performance given the target CPV you set.
+message TargetCpv {}