/common/ad_asset.proto

--- v16/common/ad_asset.proto   2024-02-22 08:40:46.000000000 +0000
+++ v17/common/ad_asset.proto   2024-05-29 15:59:04.000000000 +0000
@@ -1,82 +1,115 @@
-// Copyright 2023 Google LLC
+// 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.v16.common;
+package google.ads.googleads.v17.common;

-import "google/ads/googleads/v16/common/asset_policy.proto";
-import "google/ads/googleads/v16/enums/asset_performance_label.proto";
-import "google/ads/googleads/v16/enums/served_asset_field_type.proto";
+import "google/ads/googleads/v17/common/asset_policy.proto";
+import "google/ads/googleads/v17/enums/asset_performance_label.proto";
+import "google/ads/googleads/v17/enums/served_asset_field_type.proto";

-option csharp_namespace = "Google.Ads.GoogleAds.V16.Common";
-option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v16/common;common";
+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
= "AdAssetProto";
-option java_package = "com.google.ads.googleads.v16.common";
+option java_package = "com.google.ads.googleads.v17.common";
 option objc_class_prefix
= "GAA";
-option php_namespace = "Google\\Ads\\GoogleAds\\V16\\Common";
-option ruby_package = "Google::Ads::GoogleAds::V16::Common";
+option php_namespace = "Google\\Ads\\GoogleAds\\V17\\Common";
+option ruby_package = "Google::Ads::GoogleAds::V17::Common";

 
// Proto file describing assets used inside an ad.

 
// A text asset used inside an ad.
 message
AdTextAsset {
   
// Asset text.
   optional
string text = 4;

   
// The pinned field of the asset. This restricts the asset to only serve
   
// within this field. Multiple assets can be pinned to the same field. An
   
// asset that is unpinned or pinned to a different field will not serve in a
   
// field where some other asset has been pinned.
-  google.ads.googleads.v16.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType
+  google.ads.googleads.v17.enums.ServedAssetFieldTypeEnum.ServedAssetFieldType
       pinned_field
= 2;

   
// The performance label of this text asset.
-  google.ads.googleads.v16.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel
+  google.ads.googleads.v17.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel
       asset_performance_label
= 5;

   
// The policy summary of this text asset.
   
AdAssetPolicySummary policy_summary_info = 6;
 
}

 
// An image asset used inside an ad.
 message
AdImageAsset {
   
// The Asset resource name of this image.
   optional
string asset = 2;
 
}

 
// A video asset used inside an ad.
 message
AdVideoAsset {
   
// The Asset resource name of this video.
   optional
string asset = 2;
+
+  // Contains info fields for this AdVideoAsset.
+  optional AdVideoAssetInfo ad_video_asset_info = 4;
+}
+
+// Contains info fields for AdVideoAssets.
+message AdVideoAssetInfo {
+  // List of inventory preferences for this AdVideoAsset. This field can only be
+  // set for DiscoveryVideoResponsiveAd. The video assets with an inventory
+  // asset preference set will be preferred over other videos from the same ad
+  // during serving time. For example, consider this ad being served for a
+  // specific inventory. The server will first try to match an eligible video
+  // with a matching preference for that inventory. Videos with no preferences
+  // are chosen only when a video with matching preference and eligible for a
+  // given ad slot can be found.
+  optional AdVideoAssetInventoryPreferences
+      ad_video_asset_inventory_preferences = 1;
+}
+
+// YouTube Video Asset inventory preferences.
+// Next tag: 4
+message AdVideoAssetInventoryPreferences {
+  // When true, YouTube Video Asset with this inventory preference will be
+  // preferred when choosing a video to serve In Feed.
+  optional bool in_feed_preference = 1;
+
+  // When true, YouTube Video Asset with this inventory preference will be
+  // preferred when choosing a video to serve In Stream.
+  optional bool in_stream_preference = 2;
+
+  // When true, YouTube Video Asset with this inventory preference will be
+  // preferred when choosing a video to serve on YouTube Shorts.
+  optional bool shorts_preference = 3;
 
}

 
// A media bundle asset used inside an ad.
 message
AdMediaBundleAsset {
   
// The Asset resource name of this media bundle.
   optional
string asset = 2;
 
}

-// A discovery carousel card asset used inside an ad.
-message AdDiscoveryCarouselCardAsset {
+// A Demand Gen carousel card asset used inside an ad.
+message AdDemandGenCarouselCardAsset {
   
// The Asset resource name of this discovery carousel card.
   optional
string asset = 1;
 
}

 
// A call to action asset used inside an ad.
 message
AdCallToActionAsset {
   
// The Asset resource name of this call to action asset.
   optional
string asset = 1;
 
}