/common/asset_types.proto

--- v20/common/asset_types.proto    2025-08-05 14:39:39.000000000 +0000
+++ v21/common/asset_types.proto    2025-08-05 14:39:46.000000000 +0000
@@ -290,6 +292,12 @@
   // total.
   repeated AdScheduleInfo ad_schedule_targets = 13;

+  // Terms and conditions of the promotion.
+  string terms_and_conditions_text = 14;
+
+  // URI to the terms and conditions of the promotion.
+  string terms_and_conditions_uri = 15;
+
   // Discount type, can be percentage off or amount off.
   oneof discount_type {
     // Percentage off discount in the promotion. 1,000,000 = 100%.
@@ -310,9 +318,33 @@
     // The amount the total order needs to be for the user to be eligible for
     // the promotion.
     Money orders_over_amount = 6;
+
+    // Barcode info used to generate promotion barcode for user to be eligible
+    // for the promotion.
+    PromotionBarcodeInfo promotion_barcode_info = 16;
+
+    // QR code info used to generate promotion QR code for user to be eligible
+    // for the promotion.
+    PromotionQrCodeInfo promotion_qr_code_info = 17;
   }
 }

+// Barcode info to generate promotion barcode.
+message PromotionBarcodeInfo {
+  // Barcode type used to generate barcode with the correct format.
+  google.ads.googleads.v21.enums.PromotionBarcodeTypeEnum.PromotionBarcodeType
+      type = 1;
+
+  // Promotion message to be encoded in the barcode.
+  string barcode_content = 2;
+}
+
+// QR code info to generate promotion QR code.
+message PromotionQrCodeInfo {
+  // Promotion message to be encoded in the QR code.
+  string qr_code_content = 1;
+}
+
 // A Callout asset.
 message CalloutAsset {
   // Required. The callout text.
@@ -1123,3 +1155,10 @@
   // http://www.mystore.com/shoes).
   string app_deep_link_uri = 1;
 }
+
+// A YouTube video list asset.
+message YouTubeVideoListAsset {
+  // List of videos. Each is a reference to a YouTube video asset. Minimum of 2
+  // videos required and maximum of 5 allowed.
+  repeated AdVideoAsset youtube_videos = 1;
+}