/common/criteria.proto

--- v23/common/criteria.proto   2026-05-08 16:34:05.000000000 +0000
+++ v24/common/criteria.proto   2026-05-08 16:34:19.000000000 +0000
@@ -923,5 +923,61 @@
     // Integer value specifying the class rating for a hotel. Ranges from 1 to 5
     // stars.
     int64 hotel_class = 6;
+
+    // Integer value specifying the user rating for a Vertical Ad listing.
+    // Ranges from 1 to 5, where 5 is the best.
+    int64 user_rating = 7;
+
+    // A name for a specific location, like the venue for a concert event.
+    string venue = 8;
+
+    // The name of an associated participant for a given event. For example,
+    // headliner for a concert event.
+    string event_participant_display_name = 9;
+  }
+}
+
+// Represents a Retail Filter Bundle, used to link an ad group to a shared set
+// containing retail filters.
+message RetailFilterBundle {
+  // The resource name of the shared set that contains the retail filter.
+  // This field is required.
+  optional string shared_set = 1;
+}
+
+// Represents a Retail Filter.
+message RetailFilter {
+  // Type of the retail filter node.
+  oneof node {
+    // An expression node. At this time, this can only be an OR node.
+    RetailFilterExpression expression = 1;
+
+    // A tag node.
+    RetailTag tag = 2;
   }
 }
+
+// Represents a Retail Filter Expression. Tags grouped within an expression
+// are joined with OR operator. A product needs to have any of these tags to
+// satisfy expression condition.
+message RetailFilterExpression {
+  // The name of the expression. This name is used for grouping Retail Tags into
+  // one logical expression with OR operator.
+  // The name can contain at most 20 characters. Only lowercase
+  // latin letters, underscores, and numbers are allowed.
+  // This field is required and must be unique within the shared set.
+  optional string name = 1;
+}
+
+// Represents a Retail Filter Tag.
+message RetailTag {
+  // The value of the tag.
+  // It can contain at most 50 characters. All Unicode characters except comma
+  // and newline are allowed.
+  // This field is required.
+  optional string value = 1;
+
+  // The name of the expression this tag belongs to. If empty, the tag is
+  // a top-level condition.
+  optional string expression_name = 2;
+}