/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;
 }