Skip to main content
Glama

Audience age and gender

sensortower_audience_demographics
Read-only

Get age and gender demographic share grids for a SensorTower audience segment to analyze how engagement splits across cohorts, with optional filters.

Instructions

The age/gender grid for an audience segment (metric=est_audience_demographic_share, breakdown=age,gender). Shares over the whole segment sum to 1.0. The optional age and gender filters SUBSET WITHOUT RENORMALISING -- filtered rows keep the same values they had in the full grid, so they will not sum to 1. Age values in the response are bucket starts: 18=18-24, 25=25-34, 35=35-44, 45=45-54, 55=55+.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ageNoSubset to one bucket start, e.g. 25.
limitNoKeep at most this many rows.
fieldsNoComma-separated allowlist of output fields. Strongly recommended: SensorTower rows are wide.
formatNoOutput encoding. csv is markedly cheaper in tokens for wide, flat results.
genderNo
countryNoISO country code, e.g. US.US
dry_runNoPrint the URL that would be called (token redacted) and charge 0 requests.
end_dateYesEnd of the window, YYYY-MM-DD (inclusive).
segment_idYesapp -> 24-hex unified_app_id (from sensortower_app_metadata); app_category -> an iOS category id such as 6005; demographic -> {gender}_{age_start}_{age_end} such as male_18_45, where age_end is EXCLUSIVE and 55 is the largest legal value. See sensortower_reference for the rest.
start_dateYesStart of the window, YYYY-MM-DD (inclusive).
segment_typeNoWhat kind of audience. Must agree with segment_id.app

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint and openWorldHint, and the description adds genuinely non-obvious behavior: unfiltered shares sum to 1.0, filtered rows are subset WITHOUT renormalising and therefore will not sum to 1, and response age values are bucket starts (18=18-24 ... 55=55+). This is exactly the kind of return-value semantics an agent cannot infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, front-loaded with the identity of the grid before the semantic caveats; every clause carries information. The metric=/breakdown= parenthetical is the one piece that borders on implementation detail an agent may not need.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter, no-output-schema tool, the description covers the critical output semantics (sum-to-1, no renormalisation, bucket starts) and the segment grid. It omits row-limit/pagination behavior and when the optional country/format choices matter, but the structured schema handles most of the remaining surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 91%, so baseline is 3, but the description adds meaning the schema lacks: the age bucket mapping (25 means 25-34, etc.) and the fact that applying age/gender filters changes summation behavior. It does not explain limit, fields, format, or country, which the schema already covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it returns the age/gender grid for an audience segment and even names the underlying metric and breakdown. An agent can tell this apart from sensortower_audience_affinity or sensortower_app_demographics conceptually, but no sibling is named explicitly, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: you use it to get shares for an audience segment, and the renormalisation note tells you what happens when the age/gender filters are applied. There is no explicit when-to-use/when-not guidance and no named alternative (e.g. versus the affinity or app_demographics tools).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.