/resources/campaign.proto

--- v19/resources/campaign.proto    2025-08-05 14:37:39.000000000 +0000
+++ v20/resources/campaign.proto    2025-08-05 14:37:46.000000000 +0000
@@ -328,8 +331,37 @@
       optional bool allow_shorts = 3;
     }

-    // Inventory control for video responsive ads 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.