Structured Data Guide
Ecommerce Product Audience Schema: suggestedAudience & Audience JSON-LD for Targeted Products
Toy stores, children's apparel brands, gift shops, and B2B suppliers sell products to a specific segment — but without suggestedAudience structured data, AI shopping agents have no machine-readable way to match "toys for 3-year-olds" or "gifts for new dads" to the right products. Here's how to add audience signals to Shopify product pages.
suggestedAudience to your Product JSON-LD with a PeopleAudience object. Set suggestedMinAge and suggestedMaxAge (integers, years) for age-targeted products; suggestedGender ("Male", "Female", "Unisex") for gendered products; and audienceType (free text) for life-stage targeting. For B2B products, use BusinessAudience with numberOfEmployees and yearlyRevenue ranges. Store audience data in Shopify metafields.
Why Audience Schema Unlocks High-Intent Gift & Discovery Queries
Some of the most commercially valuable AI shopping queries are audience-targeted:
- "Best birthday gifts for a 5-year-old"
- "Outdoor toys for toddlers under $30"
- "Christmas gifts for teenage girls"
- "Baby shower gift ideas for new moms"
- "Professional kitchen tools for home chefs"
These queries have high purchase intent and clear audience filters. AI agents building recommendation lists for these queries need machine-readable audience signals on product pages. When you add suggestedAudience with age range and gender to your products, you become filterable by these criteria.
Without audience structured data, the agent must guess from product title ("Dinosaur Building Blocks Set") whether it's appropriate for a 3-year-old vs. a 10-year-old — and it will frequently guess wrong or skip your product entirely.
Audience Type Hierarchy
| Schema.org Type | Use For | Key Properties |
|---|---|---|
PeopleAudience |
Consumer products targeted by age, gender, life stage | suggestedMinAge, suggestedMaxAge, suggestedGender, audienceType |
BusinessAudience |
B2B products for businesses of specific size or revenue | numberOfEmployees (QuantitativeValue), yearlyRevenue (MonetaryAmount) |
EducationalAudience |
Educational materials for specific student or teacher roles | educationalRole ("student", "teacher", "parent") |
Audience |
Base type — use if none of the subtypes fit | audienceType (free text), geographicArea |
PeopleAudience Properties Reference
| Property | Type | Description |
|---|---|---|
suggestedMinAge |
Number (years) | Minimum recommended age: 3 (for "ages 3 and up") |
suggestedMaxAge |
Number (years) | Maximum recommended age: 6 (for "ages 3-6"); omit for "ages 3 and up" |
suggestedGender |
Text | "Male", "Female", or "Unisex" |
audienceType |
Text | Life stage or role: "Toddlers", "Teenagers", "New Parents", "Home Chefs", "Professionals" |
healthCondition |
MedicalCondition | For health products: specific condition the product is relevant to |
geographicArea |
AdministrativeArea | Geographic audience restriction (if product is region-specific) |
requiredGender |
Text | Required (not just suggested) gender for regulatory or safety reasons |
requiredMinAge |
Number (years) | Legal minimum age requirement (e.g. alcohol, firearms accessories: 21) |
requiredMaxAge |
Number (years) | Legal maximum age restriction (rare — e.g. children's medication dosing) |
JSON-LD Examples
Children's Toy — Age Range
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Magnetic Dinosaur Building Blocks Set (60 Pieces)",
"description": "STEM-focused magnetic tile set featuring 6 dinosaur figures. Builds fine motor skills and spatial reasoning. No small parts — safe for ages 3 and up.",
"image": "https://your-store.myshopify.com/cdn/shop/products/dino-blocks.jpg",
"brand": {"@type": "Brand", "name": "BrightMind Toys"},
"offers": {
"@type": "Offer",
"price": "34.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://your-store.myshopify.com/products/magnetic-dino-blocks"
},
"suggestedAudience": {
"@type": "PeopleAudience",
"suggestedMinAge": 3,
"suggestedMaxAge": 8,
"suggestedGender": "Unisex",
"audienceType": "Children"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "1203"
}
}
Gender-Targeted Apparel
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Wildflower Linen Sundress — Women's",
"offers": {
"@type": "Offer",
"price": "89.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
},
"suggestedAudience": {
"@type": "PeopleAudience",
"suggestedMinAge": 18,
"suggestedGender": "Female",
"audienceType": "Adults"
}
}
Life-Stage Targeting: New Parents
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Nesting Instinct Gift Set — New Mom Care Package",
"description": "Thoughtfully curated self-care gift for new mothers: organic nipple balm, lavender bath salts, bamboo nursing pads, and a hand-written congratulations card.",
"suggestedAudience": {
"@type": "PeopleAudience",
"suggestedMinAge": 20,
"suggestedMaxAge": 45,
"suggestedGender": "Female",
"audienceType": "New Mothers"
}
}
B2B Product — BusinessAudience
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Commercial Grade Sous Vide Circulator (40L Bath)",
"description": "Professional immersion circulator designed for restaurant kitchens and catering operations. 2500W, ±0.1°C precision, 40-liter bath capacity.",
"suggestedAudience": {
"@type": "BusinessAudience",
"audienceType": "Restaurant and Food Service Businesses",
"numberOfEmployees": {
"@type": "QuantitativeValue",
"minValue": 5
}
}
}
Shopify Liquid Template: suggestedAudience Implementation
{% comment %} product.liquid — suggestedAudience for targeted products {% endcomment %}
{% assign audience_min_age = product.metafields.audience.min_age.value %}
{% assign audience_type = product.metafields.audience.type.value %}
{% if audience_min_age or audience_type %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": {{ product.title | json }},
"description": {{ product.description | strip_html | truncate: 600 | json }},
"offers": {
"@type": "Offer",
"price": "{{ product.price | money_without_currency | remove: ',' }}",
"priceCurrency": {{ shop.currency | json }},
"availability": {% if product.available %}"https://schema.org/InStock"{% else %}"https://schema.org/OutOfStock"{% endif %},
"url": "https://{{ shop.domain }}{{ product.url }}"
},
"suggestedAudience": {
"@type": {{ product.metafields.audience.schema_type.value | default: "PeopleAudience" | json }}
{% if audience_min_age %}
,"suggestedMinAge": {{ audience_min_age }}
{% endif %}
{% if product.metafields.audience.max_age.value %}
,"suggestedMaxAge": {{ product.metafields.audience.max_age.value }}
{% endif %}
{% if product.metafields.audience.required_min_age.value %}
,"requiredMinAge": {{ product.metafields.audience.required_min_age.value }}
{% endif %}
{% if product.metafields.audience.gender.value %}
,"suggestedGender": {{ product.metafields.audience.gender.value | json }}
{% endif %}
{% if audience_type %}
,"audienceType": {{ audience_type | json }}
{% endif %}
}
{% if product.metafields.reviews.rating %}
,"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "{{ product.metafields.reviews.rating.value }}",
"reviewCount": "{{ product.metafields.reviews.rating_count.value }}"
}
{% endif %}
}
</script>
{% endif %}
Metafields for audience targeting
| Metafield key | Type | Example value |
|---|---|---|
audience.min_age | Integer | 3 (years) |
audience.max_age | Integer | 8 (years) |
audience.required_min_age | Integer | 21 (legal minimum, e.g. alcohol accessories) |
audience.gender | Single-line text | "Male", "Female", or "Unisex" |
audience.type | Single-line text | "Toddlers", "Teenagers", "New Parents", "Professionals" |
audience.schema_type | Single-line text | "PeopleAudience" or "BusinessAudience" |
Age Range Reference for Common Product Categories
| Category | suggestedMinAge | suggestedMaxAge | audienceType |
|---|---|---|---|
| Baby/infant products | 0 | 1 | "Infants" |
| Toddler toys | 1 | 3 | "Toddlers" |
| Preschool toys (ages 3–5) | 3 | 5 | "Preschoolers" |
| School-age toys (ages 6–12) | 6 | 12 | "Children" |
| Teen products | 13 | 17 | "Teenagers" |
| Young adult (18–25) | 18 | 25 | "Young Adults" |
| Adult general (18+) | 18 | (omit) | "Adults" |
| Senior products (60+) | 60 | (omit) | "Seniors" |
| Age-restricted (alcohol/tobacco accessories) | 21 (required) | (omit) | "Adults" |
Common Audience Schema Mistakes
| Mistake | Effect | Fix |
|---|---|---|
| Using audience instead of suggestedAudience on Product | audience is for CreativeWork; on Product @type, the correct property is suggestedAudience | Switch to suggestedAudience — it is the Product-specific audience property |
| Using requiredMinAge for toys with "ages 3+" labeling (non-legal restriction) | requiredMinAge implies a legal requirement — misleading signal | Use suggestedMinAge for recommendations; reserve requiredMinAge for legally age-restricted products (alcohol accessories, firearms-related) |
| Setting suggestedGender to "Male/Female" for unisex products | Products filtered out of gender-neutral queries like "unisex gift ideas" | Use "Unisex" for products that aren't gender-specific |
| Omitting audience markup on gift products entirely | Invisible to highest-value AI shopping queries: "gifts for X" | Add suggestedAudience with at minimum audienceType describing who the gift is for |
| Using PeopleAudience for B2B professional equipment | Mismatched type; numberOfEmployees can't be expressed on PeopleAudience | Use BusinessAudience for products targeted at businesses or professionals |
CatalogScan Audience Schema Checks
CatalogScan's AI Readiness scan detects Shopify stores in children's toys, baby products, apparel, gifts, and B2B categories and checks whether product pages include suggestedAudience structured data. Stores selling age-targeted or gender-targeted products without suggestedAudience receive an audience-signal gap warning. The scan validates: PeopleAudience vs. Audience base type selection, suggestedMinAge/suggestedMaxAge as numeric values (flags string values like "3 years"), and suggestedGender values against recognized enumerations.
Related guides: Clothing & apparel size schema · Age verification structured data · Ecommerce product schema overview · Shopify schema markup guide
FAQ
What is suggestedAudience and how do I use it on Shopify?
suggestedAudience on Product takes a PeopleAudience (or BusinessAudience) object. Set suggestedMinAge and suggestedMaxAge for age-targeted products, suggestedGender for gendered products, and audienceType for life-stage targeting. Store values in Shopify metafields and render conditionally in product.liquid.
How do I add age range to a toy product on Shopify?
In the Product JSON-LD block, add suggestedAudience: {"@type": "PeopleAudience", "suggestedMinAge": 3, "suggestedMaxAge": 8}. Age values are integers (years). Omit suggestedMaxAge for "ages X and up" products with no upper limit. Store these values in audience.min_age and audience.max_age metafields.
What suggestedGender values should I use?
Use "Male", "Female", or "Unisex". Only add suggestedGender when the product is genuinely gender-targeted. Gender-neutral products should use "Unisex" if gender filtering is relevant, or omit suggestedGender entirely to avoid unnecessary restriction signals.
How does audience schema help with gift recommendation queries?
AI agents building gift lists ("birthday gifts for a 5-year-old girl") filter by suggestedMinAge, suggestedMaxAge, and suggestedGender. Products matching the audience criteria are surfaced; products without audience markup are excluded or deprioritized. Adding audienceType ("New Mothers", "Teenagers") catches life-stage gift queries that don't specify an exact age.
Should I use requiredMinAge or suggestedMinAge for age-restricted products?
Use requiredMinAge only for legally age-restricted products (alcohol accessories, certain health products, firearms-related items). For toy safety labeling like "recommended for ages 3+", use suggestedMinAge — it conveys a developmental recommendation, not a legal restriction. Misusing requiredMinAge for non-legal restrictions can mislead AI agents about the nature of the restriction.