/common/criteria.proto

--- v14/common/criteria.proto   2023-10-18 04:25:32.000000000 +0000
+++ v15/common/criteria.proto   2023-10-18 04:25:33.000000000 +0000
@@ -81,7 +82,10 @@
 // A mobile app category criterion.
 message MobileAppCategoryInfo {
   // The mobile app category constant resource name.
-  optional string mobile_app_category_constant = 2;
+  optional string mobile_app_category_constant = 2
+      [(google.api.resource_reference) = {
+        type: "googleads.googleapis.com/MobileAppCategoryConstant"
+      }];
 }

 // A mobile application criterion.
@@ -168,8 +172,8 @@
     // City the hotel is located in.
     HotelCityInfo hotel_city = 6;

-    // Bidding category of a product offer.
-    ProductBiddingCategoryInfo product_bidding_category = 13;
+    // Category of a product offer.
+    ProductCategoryInfo product_category = 24;

     // Brand of a product offer.
     ProductBrandInfo product_brand = 15;
@@ -252,17 +256,17 @@
   optional string city_criterion = 2;
 }

-// Bidding category of a product offer.
-message ProductBiddingCategoryInfo {
-  // ID of the product bidding category.
+// Category of a product offer.
+message ProductCategoryInfo {
+  // ID of the product category.
   //
   // This ID is equivalent to the google_product_category ID as described in
   // this article: https://support.google.com/merchants/answer/6324436
-  optional int64 id = 4;
+  optional int64 category_id = 1;

-  // Level of the product bidding category.
-  google.ads.googleads.v14.enums.ProductBiddingCategoryLevelEnum
-      .ProductBiddingCategoryLevel level = 3;
+  // Level of the product category.
+  google.ads.googleads.v15.enums.ProductCategoryLevelEnum.ProductCategoryLevel
+      level = 2;
 }

 // Brand of the product.
@@ -561,7 +565,9 @@
 // (for example, "Pets & Animals/Pets/Dogs").
 message TopicInfo {
   // The Topic Constant resource name.
-  optional string topic_constant = 3;
+  optional string topic_constant = 3 [(google.api.resource_reference) = {
+    type: "googleads.googleapis.com/TopicConstant"
+  }];

   // The category to target or exclude. Each subsequent element in the array
   // describes a more specific sub-category. For example,
@@ -740,7 +746,9 @@
 // A combined audience criterion.
 message CombinedAudienceInfo {
   // The CombinedAudience resource name.
-  string combined_audience = 1;
+  string combined_audience = 1 [(google.api.resource_reference) = {
+    type: "googleads.googleapis.com/CombinedAudience"
+  }];
 }

 // An audience criterion.
@@ -770,3 +778,27 @@
   // The criterion resource name.
   string service_id = 1;
 }
+
+// A Search Theme criterion only on Performance Max campaign. Represents a
+// keyword-like advertiser input.
+message SearchThemeInfo {
+  // Each Search Theme has a value of a simple string, like keywords.
+  // There are limits on overall length, allowed characters, and number
+  // of words.
+  string text = 1;
+}
+
+// Represents a Brand Criterion used for targeting based on commercial knowledge
+// graph.
+message BrandInfo {
+  // The Commercial KG MID for the brand.
+  optional string entity_id = 1;
+}
+
+// A Brand List Criterion is used to specify a list of brands.  The list is
+// represented as a SharedSet id type BRAND_HINT. A criterion of this type can
+// be either targeted or excluded.
+message BrandListInfo {
+  // Shared set resource name of the brand list.
+  optional string shared_set = 1;
+}