/services/audience_insights_service.proto

--- v22/services/audience_insights_service.proto    2026-01-23 15:36:24.000000000 +0000
+++ v23/services/audience_insights_service.proto    2026-01-23 15:36:32.000000000 +0000
@@ -122,12 +122,33 @@
       GenerateAudienceCompositionInsightsRequest)
       returns (GenerateAudienceCompositionInsightsResponse) {
     option (google.api.http) = {
-      post: "/v22/customers/{customer_id=*}:generateAudienceCompositionInsights"
+      post: "/v23/customers/{customer_id=*}:generateAudienceCompositionInsights"
       body: "*"
     };
     option (google.api.method_signature) = "customer_id,audience,dimensions";
   }

+  // Returns a collection of audience attributes using generative AI based on
+  // the provided audience description.
+  //
+  // List of thrown errors:
+  //   [AudienceInsightsError]()
+  //   [AuthenticationError]()
+  //   [AuthorizationError]()
+  //   [FieldError]()
+  //   [HeaderError]()
+  //   [InternalError]()
+  //   [QuotaError]()
+  //   [RequestError]()
+  rpc GenerateAudienceDefinition(GenerateAudienceDefinitionRequest)
+      returns (GenerateAudienceDefinitionResponse) {
+    option (google.api.http) = {
+      post: "/v23/customers/{customer_id=*}:generateAudienceDefinition"
+      body: "*"
+    };
+    option (google.api.method_signature) = "customer_id,audience_description";
+  }
+
   // Returns a collection of targeting insights (e.g. targetable audiences) that
   // are relevant to the requested audience.
   //
@@ -512,14 +537,60 @@
 }

 // Response message for
-// [AudienceInsightsService.GenerateTargetingSuggestionMetrics][google.ads.googleads.v22.services.AudienceInsightsService.GenerateTargetingSuggestionMetrics].
+// [AudienceInsightsService.GenerateTargetingSuggestionMetrics][google.ads.googleads.v23.services.AudienceInsightsService.GenerateTargetingSuggestionMetrics].
 message GenerateTargetingSuggestionMetricsResponse {
   // Suggested targetable audiences. There will be one suggestion for each
-  // [GenerateTargetingSuggestionMetricsRequest.audiences][google.ads.googleads.v22.services.GenerateTargetingSuggestionMetricsRequest.audiences]
+  // [GenerateTargetingSuggestionMetricsRequest.audiences][google.ads.googleads.v23.services.GenerateTargetingSuggestionMetricsRequest.audiences]
   // requested, matching the order requested.
   repeated TargetingSuggestionMetrics suggestions = 1;
 }

+// Request message for
+// [AudienceInsightsService.GenerateAudienceDefinition][google.ads.googleads.v23.services.AudienceInsightsService.GenerateAudienceDefinition].
+message GenerateAudienceDefinitionRequest {
+  // Required. The ID of the customer.
+  string customer_id = 1 [(google.api.field_behavior) = REQUIRED];
+
+  // Required. Provide a text description of an audience to get AI-generated
+  // structured suggestions. This can take around 5 or more seconds to complete
+  // Supported marketing objectives are: AWARENESS, CONSIDERATION and RESEARCH.
+  // Supported dimensions are: AGE_RANGE, GENDER, PARENTAL_STATUS,
+  // AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, LIFE_EVENT_USER_INTEREST,
+  // CATEGORY and KNOWLEDGE_GRAPH.
+  InsightsAudienceDescription audience_description = 2
+      [(google.api.field_behavior) = REQUIRED];
+
+  // Optional. The name of the customer being planned for.  This is a
+  // user-defined value.
+  string customer_insights_group = 3 [(google.api.field_behavior) = OPTIONAL];
+
+  // Optional. Additional information on the application issuing the request.
+  google.ads.googleads.v23.common.AdditionalApplicationInfo
+      insights_application_info = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for
+// [AudienceInsightsService.GenerateAudienceDefinition][google.ads.googleads.v23.services.AudienceInsightsService.GenerateAudienceDefinition].
+message GenerateAudienceDefinitionResponse {
+  // The attributes that make up the audience definition.
+  repeated google.ads.googleads.v23.common.AudienceInsightsAttributeMetadata
+      high_relevance_attributes = 1;
+
+  // Additional attributes that are less relevant but still related to the
+  // audience description. Use these attributes to broaden the audience
+  // definition to reach more users.
+  repeated google.ads.googleads.v23.common.AudienceInsightsAttributeMetadata
+      medium_relevance_attributes = 2;
+}
+
+// A collection of dimensions to be used for generating insights.
+message AudienceInsightsDimensions {
+  // Required. A list of dimensions.
+  repeated google.ads.googleads.v23.enums.AudienceInsightsDimensionEnum
+      .AudienceInsightsDimension dimensions = 1
+      [(google.api.field_behavior) = REQUIRED];
+}
+
 // A structured definition of the audience of interest for which insights are
 // being requested in AudienceInsightsService.
 message InsightsAudienceDefinition {
@@ -549,13 +620,22 @@
   // their 30s who love to travel".
   string audience_description = 2 [(google.api.field_behavior) = REQUIRED];

-  // Optional. An optional marketing objective which will influence the type of
-  // suggestions produced. AWARENESS will provide affinity audience segments,
-  // while CONSIDERATION will provide in-market audience segments. Leaving it
-  // unset will provide both.
-  google.ads.googleads.v22.enums.AudienceInsightsMarketingObjectiveEnum
-      .AudienceInsightsMarketingObjective marketing_objective = 3
-      [(google.api.field_behavior) = OPTIONAL];
+  // The output types of the request. You can select a marketing objective,
+  // which will influence the type of suggestions produced, or you can specify a
+  // list of audience dimensions. Supported values are different for each
+  // request type. If unset, all possible supported dimensions for the request
+  // type will be returned.
+  oneof output_types {
+    // Optional. An optional marketing objective which will influence the type
+    // of suggestions produced.
+    google.ads.googleads.v23.enums.AudienceInsightsMarketingObjectiveEnum
+        .AudienceInsightsMarketingObjective marketing_objective = 4
+        [(google.api.field_behavior) = OPTIONAL];
+
+    // Optional. An optional list of audience dimensions to return.
+    AudienceInsightsDimensions audience_dimensions = 5
+        [(google.api.field_behavior) = OPTIONAL];
+  }
 }

 // A set of users, defined by various characteristics, for which insights can