/services/audience_insights_service.proto

--- v18/services/audience_insights_service.proto    2025-02-24 15:48:55.000000000 +0000
+++ v19/services/audience_insights_service.proto    2025-02-24 15:49:00.000000000 +0000
@@ -297,10 +301,11 @@
 message TargetingSuggestionMetrics {
   // Suggested location targeting.  These attributes all have dimension
   // GEO_TARGET_COUNTRY or SUB_COUNTRY_LOCATION
-  repeated AudienceInsightsAttributeMetadata locations = 1;
+  repeated google.ads.googleads.v19.common.AudienceInsightsAttributeMetadata
+      locations = 9;

   // Suggested age targeting; may be empty indicating no age targeting.
-  repeated google.ads.googleads.v18.common.AgeRangeInfo age_ranges = 2;
+  repeated google.ads.googleads.v19.common.AgeRangeInfo age_ranges = 2;

   // Suggested gender targeting.  If present, this attribute has dimension
   // GENDER.
@@ -304,14 +309,15 @@

   // Suggested gender targeting.  If present, this attribute has dimension
   // GENDER.
-  google.ads.googleads.v18.common.GenderInfo gender = 3;
+  google.ads.googleads.v19.common.GenderInfo gender = 3;

   // A Parental Status value (parent, or not a parent).
-  google.ads.googleads.v18.common.ParentalStatusInfo parental_status = 8;
+  google.ads.googleads.v19.common.ParentalStatusInfo parental_status = 8;

   // Suggested audience segments to target.  These attributes all have dimension
   // AFFINITY_USER_INTEREST or IN_MARKET_USER_INTEREST
-  repeated AudienceInsightsAttributeMetadata user_interests = 4;
+  repeated google.ads.googleads.v19.common.AudienceInsightsAttributeMetadata
+      user_interests = 10;

   // The fraction (from 0 to 1 inclusive) of the requested audience that can be
   // reached using the suggested targeting.
@@ -364,10 +374,11 @@
 }

 // Response message for
-// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v18.services.AudienceInsightsService.ListAudienceInsightsAttributes].
+// [AudienceInsightsService.ListAudienceInsightsAttributes][google.ads.googleads.v19.services.AudienceInsightsService.ListAudienceInsightsAttributes].
 message ListAudienceInsightsAttributesResponse {
   // The attributes matching the search query.
-  repeated AudienceInsightsAttributeMetadata attributes = 1;
+  repeated google.ads.googleads.v19.common.AudienceInsightsAttributeMetadata
+      attributes = 2;
 }

 // Request message for
@@ -396,14 +407,14 @@

   // Required. The country in which to calculate the sizes and overlaps of
   // audiences.
-  google.ads.googleads.v18.common.LocationInfo country_location = 2
+  google.ads.googleads.v19.common.LocationInfo country_location = 2
       [(google.api.field_behavior) = REQUIRED];

   // Required. The audience attribute that should be intersected with all other
   // eligible audiences.  This must be an Affinity or In-Market UserInterest, an
   // AgeRange or a Gender.
-  AudienceInsightsAttribute primary_attribute = 3
-      [(google.api.field_behavior) = REQUIRED];
+  google.ads.googleads.v19.common.AudienceInsightsAttribute primary_attribute =
+      6 [(google.api.field_behavior) = REQUIRED];

   // Required. The types of attributes of which to calculate the overlap with
   // the primary_attribute. The values must be a subset of
@@ -417,10 +428,11 @@
 }

 // Response message for
-// [AudienceInsightsService.GenerateAudienceOverlapInsights][google.ads.googleads.v18.services.AudienceInsightsService.GenerateAudienceOverlapInsights].
+// [AudienceInsightsService.GenerateAudienceOverlapInsights][google.ads.googleads.v19.services.AudienceInsightsService.GenerateAudienceOverlapInsights].
 message GenerateAudienceOverlapInsightsResponse {
   // Metadata for the primary attribute, including potential YouTube reach.
-  AudienceInsightsAttributeMetadata primary_attribute_metadata = 1;
+  google.ads.googleads.v19.common.AudienceInsightsAttributeMetadata
+      primary_attribute_metadata = 3;

   // Lists of attributes and their overlap with the primary attribute, one list
   // per requested dimension.
@@ -443,7 +455,8 @@
 // attribute's potential YouTube reach and that of a primary attribute.
 message AudienceOverlapItem {
   // The attribute and its metadata, including potential YouTube reach.
-  AudienceInsightsAttributeMetadata attribute_metadata = 1;
+  google.ads.googleads.v19.common.AudienceInsightsAttributeMetadata
+      attribute_metadata = 3;

   // The estimated size of the intersection of this audience attribute with the
   // primary attribute, that is, the number of reachable YouTube users who match
@@ -475,76 +488,6 @@
   repeated TargetingSuggestionMetrics suggestions = 1;
 }

-// An audience attribute that can be used to request insights about the
-// audience.
-message AudienceInsightsAttribute {
-  // An audience attribute.
-  oneof attribute {
-    // An audience attribute defined by an age range.
-    google.ads.googleads.v18.common.AgeRangeInfo age_range = 1;
-
-    // An audience attribute defined by a gender.
-    google.ads.googleads.v18.common.GenderInfo gender = 2;
-
-    // An audience attribute defined by a geographic location.
-    google.ads.googleads.v18.common.LocationInfo location = 3;
-
-    // An Affinity or In-Market audience.
-    google.ads.googleads.v18.common.UserInterestInfo user_interest = 4;
-
-    // An audience attribute defined by interest in a topic represented by a
-    // Knowledge Graph entity.
-    AudienceInsightsEntity entity = 5;
-
-    // An audience attribute defined by interest in a Product & Service
-    // category.
-    AudienceInsightsCategory category = 6;
-
-    // A YouTube Dynamic Lineup
-    AudienceInsightsDynamicLineup dynamic_lineup = 7;
-
-    // A Parental Status value (parent, or not a parent).
-    google.ads.googleads.v18.common.ParentalStatusInfo parental_status = 8;
-
-    // A household income percentile range.
-    google.ads.googleads.v18.common.IncomeRangeInfo income_range = 9;
-
-    // A YouTube channel.
-    google.ads.googleads.v18.common.YouTubeChannelInfo youtube_channel = 10;
-  }
-}
-
-// An entity or category representing a topic that defines an audience.
-message AudienceInsightsTopic {
-  // An entity or category attribute.
-  oneof topic {
-    // A Knowledge Graph entity
-    AudienceInsightsEntity entity = 1;
-
-    // A Product & Service category
-    AudienceInsightsCategory category = 2;
-  }
-}
-
-// A Knowledge Graph entity, represented by its machine id.
-message AudienceInsightsEntity {
-  // Required. The machine id (mid) of the Knowledge Graph entity.
-  string knowledge_graph_machine_id = 1
-      [(google.api.field_behavior) = REQUIRED];
-}
-
-// A Product and Service category.
-message AudienceInsightsCategory {
-  // Required. The criterion id of the category.
-  string category_id = 1 [(google.api.field_behavior) = REQUIRED];
-}
-
-// A YouTube Dynamic Lineup.
-message AudienceInsightsDynamicLineup {
-  // Required. The numeric ID of the dynamic lineup.
-  string dynamic_lineup_id = 1 [(google.api.field_behavior) = REQUIRED];
-}
-
 // A description of an audience used for requesting insights.
 message BasicInsightsAudience {
   // Required. The countries for this audience.
@@ -566,105 +509,11 @@

   // User interests defining this audience.  Affinity and In-Market audiences
   // are supported.
-  repeated google.ads.googleads.v18.common.UserInterestInfo user_interests = 5;
+  repeated google.ads.googleads.v19.common.UserInterestInfo user_interests = 5;

   // Topics, represented by Knowledge Graph entities and/or Product & Service
   // categories, that this audience is interested in.
-  repeated AudienceInsightsTopic topics = 6;
-}
-
-// An audience attribute, with metadata about it, returned in response to a
-// search.
-message AudienceInsightsAttributeMetadata {
-  // The type of the attribute.
-  google.ads.googleads.v18.enums.AudienceInsightsDimensionEnum
-      .AudienceInsightsDimension dimension = 1;
-
-  // The attribute itself.
-  AudienceInsightsAttribute attribute = 2;
-
-  // The human-readable name of the attribute.
-  string display_name = 3;
-
-  // A string that supplements the display_name to identify the attribute.
-  // If the dimension is TOPIC, this is a brief description of the
-  // Knowledge Graph entity, such as "American singer-songwriter".
-  // If the dimension is CATEGORY, this is the complete path to the category in
-  // The Product & Service taxonomy, for example
-  // "/Apparel/Clothing/Outerwear".
-  string display_info = 5;
-
-  // An estimate of the number of reachable YouTube users matching this
-  // attribute in the requested location, or zero if that information is not
-  // available for this attribute.  Only populated in
-  // GenerateAudienceOverlapInsightsResponses and in
-  // ListAudienceInsightsAttributesResponses when youtube_reach_location is
-  // present in the request.
-  int64 potential_youtube_reach = 9;
-
-  // Metadata specific to the dimension of this attribute.
-  oneof dimension_metadata {
-    // Special metadata for a YouTube channel.
-    YouTubeChannelAttributeMetadata youtube_channel_metadata = 6;
-
-    // Special metadata for a YouTube Dynamic Lineup.
-    DynamicLineupAttributeMetadata dynamic_attribute_metadata = 7;
-
-    // Special metadata for a Location.
-    LocationAttributeMetadata location_attribute_metadata = 8;
-
-    // Special metadata for a User Interest.
-    UserInterestAttributeMetadata user_interest_attribute_metadata = 10;
-  }
-}
-
-// Metadata associated with a YouTube channel attribute.
-message YouTubeChannelAttributeMetadata {
-  // The approximate number of subscribers to the YouTube channel.
-  int64 subscriber_count = 1;
-}
-
-// Metadata associated with a Dynamic Lineup attribute.
-message DynamicLineupAttributeMetadata {
-  // A YouTube channel returned as an example of the content in a lineup.
-  message SampleChannel {
-    // A YouTube channel.
-    google.ads.googleads.v18.common.YouTubeChannelInfo youtube_channel = 1;
-
-    // The name of the sample channel.
-    string display_name = 2;
-
-    // Metadata for the sample channel.
-    YouTubeChannelAttributeMetadata youtube_channel_metadata = 3;
-  }
-
-  // The national market associated with the lineup.
-  google.ads.googleads.v18.common.LocationInfo inventory_country = 1;
-
-  // The median number of impressions per month on this lineup.
-  optional int64 median_monthly_inventory = 2;
-
-  // The lower end of a range containing the number of channels in the lineup.
-  optional int64 channel_count_lower_bound = 3;
-
-  // The upper end of a range containing the number of channels in the lineup.
-  optional int64 channel_count_upper_bound = 4;
-
-  // Examples of channels that are included in the lineup.
-  repeated SampleChannel sample_channels = 5;
-}
-
-// Metadata associated with a Location attribute.
-message LocationAttributeMetadata {
-  // The country location of the sub country location.
-  google.ads.googleads.v18.common.LocationInfo country_location = 1;
-}
-
-// Metadata associated with a User Interest attribute.
-message UserInterestAttributeMetadata {
-  // English language text description of the user interest category (200
-  // characters max).
-  string user_interest_description = 1;
+  repeated google.ads.googleads.v19.common.AudienceInsightsTopic topics = 7;
 }

 // A structured definition of the audience of interest for which insights are
@@ -732,10 +581,11 @@

   // Household income percentile ranges for the audience.  If absent, the
   // audience does not restrict by household income range.
-  repeated google.ads.googleads.v18.common.IncomeRangeInfo income_ranges = 6;
+  repeated google.ads.googleads.v19.common.IncomeRangeInfo income_ranges = 6;

   // Dynamic lineups representing the YouTube content viewed by the audience.
-  repeated AudienceInsightsDynamicLineup dynamic_lineups = 7;
+  repeated google.ads.googleads.v19.common.AudienceInsightsDynamicLineup
+      dynamic_lineups = 9;

   // A combination of entity, category and user interest attributes defining the
   // audience. The combination has a logical AND-of-ORs structure: Attributes
@@ -753,8 +603,8 @@
   // OR. Attributes need not all be the same dimension.  Only Knowledge Graph
   // entities, Product & Service Categories, and Affinity and In-Market
   // audiences are supported in this context.
-  repeated AudienceInsightsAttribute attributes = 1
-      [(google.api.field_behavior) = REQUIRED];
+  repeated google.ads.googleads.v19.common.AudienceInsightsAttribute
+      attributes = 2 [(google.api.field_behavior) = REQUIRED];
 }

 // A collection of related attributes of the same type in an audience
@@ -811,7 +661,8 @@
 // An audience attribute with metadata and metrics.
 message AudienceCompositionAttribute {
   // The attribute with its metadata.
-  AudienceInsightsAttributeMetadata attribute_metadata = 1;
+  google.ads.googleads.v19.common.AudienceInsightsAttributeMetadata
+      attribute_metadata = 3;

   // Share and index metrics for the attribute.
   AudienceCompositionMetrics metrics = 2;