Get started
Concepts
Earned and owned, AI-checked relevance, footage matching, as-of dates, and the post shape every platform shares.
Earned and owned
A campaign starts with the accounts that are yours. Posts from those accounts are owned; posts from everyone else (fans, clip pages, creators, media) are earned. Sonder keeps the two apart in every total, so you can see how far a launch travelled beyond your own channels. In Sonder's dashboards, earned is always orange and owned always slate-blue.
Some accounts sit in between: talent you pay, clippers you brief. Campaign posts carry a category (owned, talent, clipper or ugc) so you can count them the way you report them.
AI-checked relevance
Keyword search finds candidates; it doesn't decide what counts. Each candidate post is read (its caption, what is said in it, the text on screen, the comments under it) and judged against the campaign's description. A fan edit that never names the show still counts; a post that uses the word for something else doesn't.
accepted: checked and about the campaign. Totals count these.pending: not sure either way. A person decides, one by one or in bulk.rejected: checked and not about the campaign. Kept, with a reason, in case you disagree.- Every decision carries a one-line reason (
decisionShort), so you can audit it.
Footage matching
For shows and long-form video, Sonder matches clips back to the source: which of your videos a TikTok, Reel or Short was cut from, and which moment. Matching uses the clip's audio, its frames and what is said in it, against your own long-form YouTube videos. Matched moments add up to a clip heatmap: the parts of an episode people re-post most.
Footage matching runs on TikTok, Instagram and YouTube clips; Snapchat Spotlights match on speech only. See coverage.
As-of dates
Social numbers move. Every post carries asOf, the time its stats were read; campaign totals carry lastRefreshedAt. When you quote a number, quote its date. Datasets on sonderlabs.co.uk/data are frozen at an as-of date and say so.
Missing is not zero
Threads and Reddit don't publish views; Facebook only publishes them on videos; some Instagram posts hide them. In those cases views is null and viewsEstimated is true. Add them up as unknown, not as 0. Where a report estimates them (Reddit views from votes, for example), the estimate is labelled.
The post
One shape for every platform. Platform pages list what each field means there.
idstring- Sonder's id for the post.
platformstringtiktok,instagram,youtube,facebook,x,threads,redditorsnapchat.externalIdstring- The platform's own id for the post.
urlstring- The public link to the post.
creatorobjecthandle,nameandfollowersof the account that posted it.followersisnullwhen the platform does not show it.captionstring- The post's text.
hashtagsstring[]- Hashtags in the caption, lowercase, without the #.
postedAtstring- When it was posted (ISO 8601, UTC).
durationSecnumber- Video length in seconds; 0 for text and photo posts.
viewsnumber | null- Views as the platform shows them.
nullmeans the platform does not publish a count for this post: never read it as 0. viewsEstimatedboolean- True when
viewsis missing or not the platform's own count. likesnumber- Likes, or the platform's equivalent (reactions, score, boosts: see each platform page).
commentsnumber- Comment or reply count.
sharesnumber- Shares, reshares or reposts, where the platform publishes them.
transcriptExcerptstring | null- The start of what is said in the video, where available.
onscreenTextstring | null- Text read from the video or its cover, pieces separated by
|. asOfstring- When these numbers were last read (ISO 8601, UTC). Every number is as of this time.
Campaign posts
A post inside a campaign adds what Sonder decided about it:
ownershipstringowned(one of your accounts) orearned(anyone else).statusstringaccepted(checked and about your campaign),pending(waiting for a person to decide),screeningorrejected.categorystring | null- For accounts you work with:
owned,talent,clipperorugc. sentimentstring | nullpositive,neutralornegative.decisionShortstring- One line on why the post was accepted or rejected.
Public data only
Sonder APIs return public posts, public accounts and public comments: what anyone can see without signing in. Nothing needs access to anyone's account, and nothing private is returned. Audience figures are estimates about groups, never about a named person.