/resources/campaign.proto

--- v19/resources/campaign.proto    2025-05-30 15:35:57.000000000 +0000
+++ v20/resources/campaign.proto    2025-05-30 15:36:03.000000000 +0000
@@ -310,22 +313,51 @@

   // Settings for Video campaign.
   message VideoCampaignSettings {
-    // For campaigns using responsive ad containers inventory controls determine
-    // on which inventories the ads can be shown. This only applies for
-    // campaigns with the bidding strategies TARGET_CPM and FIXED_CPM.
+    // For campaigns using Video Responsive ads inventory controls determine on
+    // which inventories the ads can be shown. This only applies for campaigns
+    // with the bidding strategies TARGET_CPM and FIXED_CPM.
     message VideoAdInventoryControl {
-      // Determine if VideoResponsiveAds can be used for in-stream video ads.
+      // Determine if Video Responsive ads can be used for in-stream video ads.
       optional bool allow_in_stream = 1;

-      // Determine if VideoResponsiveAds can be used for in-feed video ads.
+      // Determine if Video Responsive ads can be used for in-feed video ads.
       optional bool allow_in_feed = 2;

-      // Determine if VideoResponsiveAds can be used as shorts format.
+      // Determine if Video Responsive ads can be used as shorts format.
       optional bool allow_shorts = 3;
     }

-    // Inventory control for responsive ad containers in reach campaigns.
-    VideoAdInventoryControl video_ad_inventory_control = 1;
+    // Format-restricting control enabling usage of Video Responsive ads in
+    // format defined Video campaigns (for example, non-skippable).
+    message VideoAdFormatControl {
+      // All contained responsive ads are expected to respect this restriction.
+      google.ads.googleads.v20.enums.VideoAdFormatRestrictionEnum
+          .VideoAdFormatRestriction format_restriction = 1;
+
+      // Restrictions for non-skippable format.
+      NonSkippableInStreamRestrictions non_skippable_in_stream_restrictions = 2;
+    }
+
+    // Restrictions for non-skippable format.
+    message NonSkippableInStreamRestrictions {
+      // The minimum allowed duration for non-skippable ads.
+      google.ads.googleads.v20.enums.NonSkippableMinDurationEnum
+          .NonSkippableMinDuration min_duration = 1;
+
+      // The maximum allowed duration for non-skippable ads.
+      google.ads.googleads.v20.enums.NonSkippableMaxDurationEnum
+          .NonSkippableMaxDuration max_duration = 2;
+    }
+
+    // Controls for defining Video Responsive ads behavior.
+    oneof fluidity_control {
+      // Inventory control for Video Responsive ads in reach campaigns.
+      VideoAdInventoryControl video_ad_inventory_control = 2;
+
+      // Format-restricting control enabling usage of Video Responsive ads in
+      // format defined Video campaigns (for example, non-skippable).
+      VideoAdFormatControl video_ad_format_control = 3;
+    }
   }

   // Settings for Performance Max campaigns.