There are several different things people mean by “TikTok audience insights”: the audience tool in Ads Manager, analytics for an account's followers, and the audience breakdown attached to a search topic. This guide covers the third: topic demographics retrieved through TokConnect.
Separate three audience questions
Topic demographics describe categories returned for one search topic and one requested window. Ads Audience Insights describes aggregated TikTok user information for advertising exploration and provides its own filters and estimation caveats. Follower analytics concerns people who follow a specific account. Each can contain age, gender, or location labels, but the population and question differ.
| If you need to decide | Use | Keep in the output |
|---|---|---|
| Whether a search topic returns a usable category breakdown | audience_demographics for the selected topic | Query ID, window, all totals, unknown and zero categories |
| How an ad audience could be configured or explored | TikTok Ads Manager Audience Insights | Audience definition, selected locations and filters, retrieval date |
| Who follows a brand account | The account owner’s analytics | Account, reporting range, export or screen source |
| Who buys or retains a product | Product and customer data | Product event definition and cohort |
Do not place figures from these sources in one denominator. A topic result can help you decide which question to investigate in a video; it does not validate an ad-targeting segment or a customer persona.
Request a topic breakdown
First retrieve a queryId using topic search. Then ask for demographics with a 7-, 30-, 60-, or 180-day window. The topic text is useful context, but the follow-up tool needs its ID.
Find the topic “language learning mobile apps.” Request its audience_demographics for 30 days. Return the summary and the age, gender and location rows, including unknown, others and totals. Keep the returned field labels.
For a scriptable workflow, use the MCP access guide. The tool returns category values labelled popularity; do not automatically relabel them as people or percentages.
A real response for language-learning apps
Our 30-day request for “language learning mobile apps” returned these non-zero rows, alongside several zero rows. The summary named 35+, unknown gender, and United States of America.
| Breakdown | Returned non-zero values | Reading |
|---|---|---|
| Gender | Total 198; unknown 99; male 99 | Unknown data accounts for part of the returned total; the result does not describe an exclusively male audience |
| Age | Total 198; 35+ 99; others 99 | 35+ appears, but “others” leaves part of the breakdown unresolved |
| Location | Total 199; United States of America 199 | The response names the US; the category's underlying unit still needs to be preserved |
The totals differ across breakdowns. We retain the source values instead of pooling them into one audience size. A useful brief note is: “This topic response names US and 35+ in its summary, with unknown gender and an unresolved age category. Investigate whether our intended customers share that context.”
A language-app team could use that note to recruit relevant interview participants. It should not change its targeting or declare a buyer persona solely from this response. The next step is to compare the topic wording and questions with its own customer evidence.
An empty response is not an audience with zero people
A separate 30-day walking-pad request returned blank summary fields and zero values throughout. That gives us no usable demographic profile. Record “No usable breakdown returned” and retain the original response.
Check the topic ID and requested window. If another related topic answers the same research question, inspect it separately and label the change. Replacing zeros with guesses from a creator profile would combine two different populations.
Handle missing and zero data
Use three labels in the brief: returned zero, returned unknown, and no field returned. A returned zero may mean the source provided a zero for that category; it does not identify why. Unknown says the response contains an unresolved category. A missing field says the response did not provide the category. These conditions lead to different follow-up work and should never become an assumed share.
For a zero-only response, retain the request and rows, state that it supplies no usable breakdown for the proposed decision, and choose another source. Do not calculate percentages from an all-zero total. If a selected country does not appear, record its absence instead of assuming the topic has no audience there. This discipline keeps a thin response from turning into a confident customer profile.
Choose the next decision
The language-app result can frame a source-review question: does a creative concept need review for a US and older-audience context? It cannot support “the audience is male” because half of the gender total is unknown. It cannot support “all users are 35+” because the age output contains an others category. Its source values retain the label popularity, so the response is not a headcount or a percentage calculation.
| Decision needed | Response condition | Next action |
|---|---|---|
| Pick a creative question to inspect | Named location and age category, with unknowns retained | Review relevant videos and use the labels as context, not targeting |
| Set paid-media targeting | Topic categories only | Reject this response for targeting; configure and document an Ads Manager audience instead |
| Describe paying customers | Any topic demographic response | Reject it as customer evidence; use product or customer research |
| Response has zero-only rows | No usable breakdown | Record the failed evidence path and choose another source |
Source note: language learning mobile apps, query ID 7668819022917402644, 30-day topic-demographic request, retrieved 18 September 2026. Returned summary: US, 35+, unknown gender. Decision: review source content with that context; do not set targeting or write a customer-profile claim from this response.