{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-ads/json-schema/google-ads-google-ads-googleads-v25-services-generate-audience-composition-insights-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__GenerateAudienceCompositionInsightsRequest",
  "description": "Request message for AudienceInsightsService.GenerateAudienceCompositionInsights.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__GenerateAudienceCompositionInsightsRequest",
  "type": "object",
  "properties": {
    "dimensions": {
      "description": "Required. The audience dimensions for which composition insights should be returned. Supported dimensions are KNOWLEDGE_GRAPH, GEO_TARGET_COUNTRY, SUB_COUNTRY_LOCATION, YOUTUBE_CHANNEL, YOUTUBE_LINEUP, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, LIFE_EVENT_USER_INTEREST, PARENTAL_STATUS, INCOME_RANGE, AGE_RANGE, GENDER, and USER_LIST.",
      "items": {
        "x-enumDescriptions": [
          "Not specified.",
          "The value is unknown in this version.",
          "A Product & Service category.",
          "A Knowledge Graph entity.",
          "A country, represented by a geo target.",
          "A geographic location within a country.",
          "A YouTube channel.",
          "An Affinity UserInterest.",
          "An In-Market UserInterest.",
          "A Parental Status value (parent, or not a parent).",
          "A household income percentile range.",
          "An age range.",
          "A gender.",
          "A YouTube video.",
          "A device type, such as Mobile, Desktop, Tablet, and Connected TV.",
          "A YouTube Lineup.",
          "A User List.",
          "A Life Event UserInterest."
        ],
        "enum": [
          "UNSPECIFIED",
          "UNKNOWN",
          "CATEGORY",
          "KNOWLEDGE_GRAPH",
          "GEO_TARGET_COUNTRY",
          "SUB_COUNTRY_LOCATION",
          "YOUTUBE_CHANNEL",
          "AFFINITY_USER_INTEREST",
          "IN_MARKET_USER_INTEREST",
          "PARENTAL_STATUS",
          "INCOME_RANGE",
          "AGE_RANGE",
          "GENDER",
          "YOUTUBE_VIDEO",
          "DEVICE",
          "YOUTUBE_LINEUP",
          "USER_LIST",
          "LIFE_EVENT_USER_INTEREST"
        ],
        "type": "string"
      },
      "type": "array"
    },
    "dataMonth": {
      "description": "The one-month range of historical data to use for insights, in the format \"yyyy-mm\". If unset, insights will be returned for the last thirty days of data.",
      "type": "string"
    },
    "customerInsightsGroup": {
      "description": "The name of the customer being planned for. This is a user-defined value.",
      "type": "string"
    },
    "insightsApplicationInfo": {
      "description": "Optional. Additional information on the application issuing the request.",
      "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AdditionalApplicationInfo"
    },
    "audience": {
      "description": "Required. The audience of interest for which insights are being requested.",
      "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__InsightsAudience"
    },
    "baselineAudience": {
      "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__InsightsAudience",
      "description": "The baseline audience to which the audience of interest is being compared."
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Common__AdditionalApplicationInfo": {
      "description": "Additional information about the application/tool issuing the request. This field is only used by ContentCreatorInsightsService, AudienceInsightsService, and ReachPlanService APIs.",
      "type": "object",
      "properties": {
        "applicationId": {
          "description": "The unique identifier of the agency proprietary application. This identifier is generated by Google. Reach out to your Google representative to request an application_id for each new application being integrated.",
          "type": "string"
        },
        "applicationInstance": {
          "description": "The instance type of the application sending the request.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "The instance is for development and testing purposes.",
            "The instance is for production purposes."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "DEVELOPMENT_AND_TESTING",
            "PRODUCTION"
          ]
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AgeRangeInfo": {
      "description": "An age range criterion.",
      "type": "object",
      "properties": {
        "type": {
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Between 18 and 24 years old.",
            "Between 25 and 34 years old.",
            "Between 35 and 44 years old.",
            "Between 45 and 54 years old.",
            "Between 55 and 64 years old.",
            "65 years old and beyond.",
            "Undetermined age range."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AGE_RANGE_18_24",
            "AGE_RANGE_25_34",
            "AGE_RANGE_35_44",
            "AGE_RANGE_45_54",
            "AGE_RANGE_55_64",
            "AGE_RANGE_65_UP",
            "AGE_RANGE_UNDETERMINED"
          ],
          "type": "string",
          "description": "Type of the age range."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AudienceInsightsAttribute": {
      "type": "object",
      "properties": {
        "category": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AudienceInsightsCategory",
          "description": "An audience attribute defined by interest in a Product & Service category."
        },
        "incomeRange": {
          "description": "A household income percentile range.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__IncomeRangeInfo"
        },
        "entity": {
          "description": "An audience attribute defined by interest in a topic represented by a Knowledge Graph entity.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AudienceInsightsEntity"
        },
        "youtubeChannel": {
          "description": "A YouTube channel.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__YouTubeChannelInfo"
        },
        "userInterest": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__UserInterestInfo",
          "description": "An Affinity or In-Market audience."
        },
        "parentalStatus": {
          "description": "A Parental Status value (parent, or not a parent).",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ParentalStatusInfo"
        },
        "location": {
          "description": "An audience attribute defined by a geographic location.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LocationInfo"
        },
        "lineup": {
          "description": "A YouTube Lineup.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AudienceInsightsLineup"
        },
        "userList": {
          "description": "A User List.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__UserListInfo"
        },
        "youtubeVideo": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__YouTubeVideoInfo",
          "description": "A YouTube video."
        },
        "device": {
          "description": "A device type. (Mobile, Desktop, Tablet)",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__DeviceInfo"
        },
        "ageRange": {
          "description": "An audience attribute defined by an age range.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AgeRangeInfo"
        },
        "gender": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__GenderInfo",
          "description": "An audience attribute defined by a gender."
        }
      },
      "description": "An audience attribute that can be used to request insights about the audience. Valid inputs for these fields are available from AudienceInsightsService.ListAudienceInsightsAttributes."
    },
    "GoogleAdsGoogleadsV25Common__AudienceInsightsCategory": {
      "description": "A Product and Service category.",
      "type": "object",
      "properties": {
        "categoryId": {
          "type": "string",
          "description": "Required. The criterion ID of the category."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__AudienceInsightsEntity": {
      "type": "object",
      "properties": {
        "knowledgeGraphMachineId": {
          "type": "string",
          "description": "Required. The machine ID (mid) of the Knowledge Graph entity."
        }
      },
      "description": "A Knowledge Graph entity, represented by its machine id."
    },
    "GoogleAdsGoogleadsV25Common__AudienceInsightsLineup": {
      "description": "A YouTube Lineup.",
      "type": "object",
      "properties": {
        "lineupId": {
          "description": "Required. The numeric ID of the lineup.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__DeviceInfo": {
      "description": "A device criterion.",
      "type": "object",
      "properties": {
        "type": {
          "x-enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Mobile devices with full browsers.",
            "Tablets with full browsers.",
            "Computers.",
            "Smart TVs and game consoles.",
            "Other device types."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MOBILE",
            "TABLET",
            "DESKTOP",
            "CONNECTED_TV",
            "OTHER"
          ],
          "description": "Type of the device.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__GenderInfo": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of the gender.",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Male.",
            "Female.",
            "Undetermined gender."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "MALE",
            "FEMALE",
            "UNDETERMINED"
          ]
        }
      },
      "description": "A gender criterion."
    },
    "GoogleAdsGoogleadsV25Common__IncomeRangeInfo": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of the income range.",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "0%-50%.",
            "50% to 60%.",
            "60% to 70%.",
            "70% to 80%.",
            "80% to 90%.",
            "Greater than 90%.",
            "Undetermined income range."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "INCOME_RANGE_0_50",
            "INCOME_RANGE_50_60",
            "INCOME_RANGE_60_70",
            "INCOME_RANGE_70_80",
            "INCOME_RANGE_80_90",
            "INCOME_RANGE_90_UP",
            "INCOME_RANGE_UNDETERMINED"
          ]
        }
      },
      "description": "An income range criterion."
    },
    "GoogleAdsGoogleadsV25Common__InsightsAudienceAttributeGroup": {
      "description": "A list of AudienceInsightsAttributes.",
      "type": "object",
      "properties": {
        "attributes": {
          "type": "array",
          "description": "Required. A collection of audience attributes combined with logical OR. Attributes need not all be the same dimension. Only Knowledge Graph entities, Product & Service Categories, and user interests are supported in this context.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AudienceInsightsAttribute"
          }
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__LocationInfo": {
      "type": "object",
      "properties": {
        "geoTargetConstant": {
          "type": "string",
          "description": "The geo target constant resource name."
        }
      },
      "description": "A location criterion."
    },
    "GoogleAdsGoogleadsV25Common__ParentalStatusInfo": {
      "type": "object",
      "properties": {
        "type": {
          "description": "Type of the parental status.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Parent.",
            "Not a parent.",
            "Undetermined parental status."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PARENT",
            "NOT_A_PARENT",
            "UNDETERMINED"
          ]
        }
      },
      "description": "A parental status criterion."
    },
    "GoogleAdsGoogleadsV25Common__UserInterestInfo": {
      "description": "Represents a particular interest-based topic to be targeted.",
      "type": "object",
      "properties": {
        "userInterestCategory": {
          "type": "string",
          "description": "The UserInterest resource name."
        }
      }
    },
    "GoogleAdsGoogleadsV25Common__UserListInfo": {
      "type": "object",
      "properties": {
        "userList": {
          "type": "string",
          "description": "The User List resource name."
        }
      },
      "description": "A User List criterion. Represents a user list that is defined by the advertiser to be targeted."
    },
    "GoogleAdsGoogleadsV25Common__YouTubeChannelInfo": {
      "type": "object",
      "properties": {
        "channelId": {
          "type": "string",
          "description": "The YouTube uploader channel id or the channel code of a YouTube channel."
        }
      },
      "description": "A YouTube Channel criterion."
    },
    "GoogleAdsGoogleadsV25Common__YouTubeVideoInfo": {
      "description": "A YouTube Video criterion.",
      "type": "object",
      "properties": {
        "videoId": {
          "type": "string",
          "description": "YouTube video id as it appears on the YouTube watch page."
        }
      }
    },
    "GoogleAdsGoogleadsV25Services__InsightsAudience": {
      "type": "object",
      "properties": {
        "gender": {
          "description": "Gender for the audience. If absent, the audience does not restrict by gender.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__GenderInfo"
        },
        "userList": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__UserListInfo",
          "description": "User list to be targeted by the audience."
        },
        "parentalStatus": {
          "description": "Parental status for the audience. If absent, the audience does not restrict by parental status.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__ParentalStatusInfo"
        },
        "lineups": {
          "description": "Lineups representing the YouTube content viewed by the audience.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AudienceInsightsLineup"
          },
          "type": "array"
        },
        "ageRanges": {
          "description": "Age ranges for the audience. If absent, the audience represents all people over 18 that match the other attributes.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__AgeRangeInfo"
          },
          "type": "array"
        },
        "topicAudienceCombinations": {
          "type": "array",
          "description": "A list of audience attribute groups consisting of one or more Knowledge Graph entities, Product & Service Categories and user interests that describe an audience. The groups have a logical AND-of-ORs structure: 1. Attributes within each InsightsAudienceAttributeGroup are combined with OR. 2. The groups themselves are combined together with AND. For example, an audience (Interest A OR Interest B) AND (Entity C) is represented using two groups. The first group contains the two interests and the second group contains the entity.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__InsightsAudienceAttributeGroup"
          }
        },
        "subCountryLocations": {
          "description": "Sub-country geographic location attributes. If present, each of these must be contained in one of the countries in this audience. If absent, the audience is geographically to the country_locations and no further.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LocationInfo"
          },
          "type": "array"
        },
        "countryLocations": {
          "description": "Required. The countries for the audience.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__LocationInfo"
          },
          "type": "array"
        },
        "incomeRanges": {
          "description": "Household income percentile ranges for the audience. If absent, the audience does not restrict by household income range.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__IncomeRangeInfo"
          },
          "type": "array"
        }
      },
      "description": "A set of users, defined by various characteristics, for which insights can be requested in AudienceInsightsService."
    }
  }
}