InteractionCounter
InteractionCounter aggregates repeated interactions into a single counted signal. It's the node that goes under interactionStatistic on a CreativeWork, Organization, or Person to publish "22,140 views", "380 likes", "14 shares" as machine-readable counts instead of rendered badges.
Full example of schema.org/InteractionCounter json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "XooQuest — Launch Trailer",
"thumbnailUrl": "https://xooquest.example/trailer-thumb.jpg",
"contentUrl": "https://www.youtube.com/watch?v=xq-trailer",
"uploadDate": "2022-02-01",
"duration": "PT2M14S",
"interactionStatistic": [
{
"@type": "InteractionCounter",
"interactionType": { "@type": "WatchAction" },
"userInteractionCount": 1243780,
"interactionService": {
"@type": "WebSite",
"name": "YouTube",
"url": "https://www.youtube.com"
}
},
{
"@type": "InteractionCounter",
"interactionType": { "@type": "LikeAction" },
"userInteractionCount": 48210,
"interactionService": {
"@type": "WebSite",
"name": "YouTube",
"url": "https://www.youtube.com"
}
},
{
"@type": "InteractionCounter",
"interactionType": { "@type": "ShareAction" },
"userInteractionCount": 3240,
"interactionService": {
"@type": "WebSite",
"name": "YouTube",
"url": "https://www.youtube.com"
},
"startTime": "2022-02-01T00:00:00Z",
"endTime": "2022-03-01T00:00:00Z"
}
]
}
</script>Direct properties (6)
interactionType: the Action type being counted — LikeAction for likes / +1s, WatchAction for views, ShareAction for shares, CommentAction for comments.userInteractionCount: Integer count.interactionService: the WebSite or SoftwareApplication where the interaction happened (YouTube, your own site, TikTok).startTime/endTime: optional DateTime bounds when the count is windowed ("42,000 watch actions in the last 30 days").location: rarely used — for interactions tied to a physical place (check-ins).
Why publish it
Google's VideoObject and Article cards sometimes surface view / engagement counts; InteractionCounter is the canonical source. AI search engines (Perplexity, ChatGPT) read interactionStatistic to rank which sources of a topic are most-cited.
Minimal valid version
The smallest markup that still produces a valid InteractionCounter entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "InteractionCounter",
"interactionType": { "@type": "LikeAction" },
"userInteractionCount": 48210
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsVideo / Article engagement signals (feeds ranking + AI citations)
Common InteractionCounter mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
interactionType as a bare string
Wrong"interactionType": "LikeAction"Right{ "@type": "LikeAction" }interactionType expects an Action *type*, published as a node (the class itself), not a string. Consumers that typecheck drop the string form.
- 02
One InteractionCounter with multiple counts mixed in
WrongCombined likes + shares in one counterRightOne InteractionCounter per interactionTypeThe count has to be single-metric; collapsing loses the per-action breakdown.
- 03
interactionService omitted for third-party stats
Wrong"userInteractionCount": 1243780 on a YouTube video with no interactionServiceRightName YouTube as the interactionServiceWithout attribution, consumers can't tell whether the count is self-reported, aggregate, or from a specific platform.
Schema properties in this example
Also mentioned in 5 other examples
InteractionCounter also appears in BlogPosting, DiscussionForumPosting, ProfilePage, SocialMediaPosting, and VideoObject. See the full InteractionCounter schema page for every reference.
About the example data
The XooQuest launch trailer on YouTube: 1.2M views, 48K likes, 3.2K shares — expressed as three InteractionCounter blocks.
Comments
Loading comments...