# Analytics

What each number means, which network and format gives it, when Rizamo reads it and how far back.

Rizamo reads the numbers of every post on the accounts you connect, made in Rizamo or anywhere else, and each account's own numbers day by day. Read them with `GET /v1/analytics/overview` (`get_analytics` in MCP), `GET /v1/analytics/posts`, `GET /v1/network-posts` and `GET /v1/analytics/audience`.

## Post metrics [#post-metrics]

A post's `metrics` hold its latest lifetime totals, by the same names on every network.

| Metric | Meaning | Adds up as |
| --- | --- | --- |
| `reach` | People who saw it, each once. Summed across posts, one person counts once per post. On Facebook, Meta's Viewers: people the post was played or shown to, paid and organic together, which Business Suite shows as Viewers. On Instagram, Meta's estimated reach, which Business Suite no longer shows: its Viewers are counted another way and can differ. | Sum |
| `engagements` | Interactions with it: Instagram's own total, or the likes, comments and other interactions its network gives, added up. | Sum |
| `likes` | Likes; on Facebook, every reaction. | Sum |
| `comments` | Comments and replies. | Sum |
| `shares` | Shares and sends. | Sum |
| `saves` | Times people saved it. | Sum |
| `clicks` | Clicks on the post, its link or its media. | Sum |
| `views` | Times it was played or shown, replays included. On TikTok, paid views included: TikTok counts organic and paid activity together, Spark Ads too. On YouTube, every start counts, autoplay and hovering included: Shorts' since 31 March 2025, every video's since 24 August 2026. | Sum |
| `engaged_views` | YouTube's engaged views: plays past the first frame, or a click or tap to play, the way YouTube counted views before it began counting every start, autoplay and hovering included (Shorts since 31 March 2025, every video since 24 August 2026). | Sum |
| `replies` | Stories: messages sent in reply. On Instagram, 0 for stories made in Europe or Japan: Meta withholds them there. | Sum |
| `reposts` | Times other profiles reposted it. On Instagram, less the reposts deleted since. | Sum |
| `quotes` | Times other profiles quoted it in a post of their own. | Sum |
| `navigation` | Stories: taps forward, taps back, exits and swipes to the next account. | Sum |
| `taps_forward` | Stories: taps to the next story. | Sum |
| `taps_back` | Stories: taps back to the story before. | Sum |
| `exits` | Stories: taps that left the stories. | Sum |
| `swipes_forward` | Stories: swipes on to the next account's stories. | Sum |
| `follows` | Accounts that followed from it. On Facebook, a reel's, as Meta's API counts them, which Business Suite can show differently. On YouTube, subscribers a video brought from its watch page. | Sum |
| `profile_visits` | Visits to the profile from it. | Sum |
| `avg_watch_time` | How long a play of the video lasted, on average. On YouTube, per engaged view, YouTube's own average, not per view. | Average, in milliseconds |
| `watch_time` | How long the video was watched, all plays together. On TikTok, TikTok's answers so far come in whole seconds, rounded down, so a post watched under a second in total reads 0. On YouTube, YouTube reports it in whole minutes, 2 to 3 days late, so a video watched under a minute in total reads 0. | Sum, in milliseconds |

## By network and format [#by-network-and-format]

The formats of each network that give a metric, and the permission it needs where the login must allow more than analytics.

| Metric | Instagram | Facebook | TikTok | Threads | YouTube |
| --- | --- | --- | --- | --- | --- |
| `reach` | all | feed, reel (`read_insights`, reel where Meta gives it) | all | no | no |
| `engagements` | all | feed, reel | all | all (`threads_manage_insights`) | no |
| `likes` | feed, carousel, reel | feed, reel | all | all (`threads_manage_insights`) | all |
| `comments` | feed, carousel, reel | feed, reel | all | all (`threads_manage_insights`) | all |
| `shares` | all | feed, reel (reel where Meta gives it) | all | all (`threads_manage_insights`) | all |
| `saves` | feed, carousel, reel | no | all | no | no |
| `clicks` | no | feed (`read_insights`) | no | no | no |
| `views` | all | feed, reel (`read_insights`) | all | all (`threads_manage_insights`) | all |
| `engaged_views` | no | no | no | no | all (where YouTube gives it) |
| `replies` | story | no | no | no | no |
| `reposts` | all (where Meta gives it) | no | no | all (`threads_manage_insights`) | no |
| `quotes` | no | no | no | all (`threads_manage_insights`) | no |
| `navigation` | story | no | no | no | no |
| `taps_forward` | story (where Meta gives it) | no | no | no | no |
| `taps_back` | story (where Meta gives it) | no | no | no | no |
| `exits` | story (where Meta gives it) | no | no | no | no |
| `swipes_forward` | story (where Meta gives it) | no | no | no | no |
| `follows` | feed, carousel, story (where Meta gives it) | reel (`read_insights`, where Meta gives it) | all (`video.insights`) | no | all |
| `profile_visits` | feed, carousel, story (where Meta gives it) | no | all (`video.insights`) | no | no |
| `avg_watch_time` | reel | reel (`read_insights`) | all (`video.insights`) | no | all |
| `watch_time` | reel | reel (`read_insights`) | all (`video.insights`) | no | all |

Metrics a network no longer gives stay in the old numbers Rizamo read, never mixed with the new ones:

| Network | Its old name | Metric | Last given | Its name now |
| --- | --- | --- | --- | --- |
| Instagram | `impressions` | `impressions` | 2025-04-21 | none |
| Instagram | `plays` | `views` | 2025-04-21 | `views` |
| Instagram | `ig_reels_aggregated_all_plays_count` | `views` | 2025-04-21 | `views` |
| Instagram | `video_views` | `views` | 2025-04-21 | `views` |
| Facebook | `post_impressions` | `impressions` | 2025-11-15 | none |
| Facebook | `post_impressions_unique` | `reach` | 2025-11-15 | `post_total_media_view_unique` |

## Each network's own names [#each-networks-own-names]

What Rizamo reads, by the network's name for it.

### Instagram [#instagram]

| Metric | Instagram's name | Formats | Note |
| --- | --- | --- | --- |
| `reach` | `reach` | all |  |
| `likes` | `likes` | feed, carousel, reel |  |
| `comments` | `comments` | feed, carousel, reel |  |
| `shares` | `shares` | all |  |
| `saves` | `saved` | feed, carousel, reel |  |
| `engagements` | `total_interactions` | all |  |
| `views` | `views` | all |  |
| `replies` | `replies` | story |  |
| `navigation` | `navigation` | story |  |
| `follows` | `follows` | feed, carousel, story | Where Meta gives it |
| `profile_visits` | `profile_visits` | feed, carousel, story | Where Meta gives it |
| `reposts` | `reposts` | all | Where Meta gives it |
| `avg_watch_time` | `ig_reels_avg_watch_time` | reel |  |
| `watch_time` | `ig_reels_video_view_total_time` | reel |  |
| `taps_forward` | `navigation` by `tap_forward` | story | Where Meta gives it |
| `taps_back` | `navigation` by `tap_back` | story | Where Meta gives it |
| `exits` | `navigation` by `tap_exit` | story | Where Meta gives it |
| `swipes_forward` | `navigation` by `swipe_forward` | story | Where Meta gives it |
| `views` | `plays` |  | Not given since 2025-04-21 |
| `views` | `ig_reels_aggregated_all_plays_count` |  | Not given since 2025-04-21 |
| `views` | `video_views` |  | Not given since 2025-04-21 |
| `impressions` | `impressions` |  | Not given since 2025-04-21 |

### Facebook [#facebook]

| Metric | Facebook's name | Formats | Note |
| --- | --- | --- | --- |
| `views` | `post_media_view` | feed | Needs `read_insights` |
| `views` | `fb_reels_total_plays` | reel | Needs `read_insights` |
| `reach` | `post_total_media_view_unique` | feed | Needs `read_insights` |
| `reach` | `post_total_media_view_unique` | reel | Needs `read_insights`. Where Meta gives it |
| `clicks` | `post_clicks` | feed | Needs `read_insights` |
| `avg_watch_time` | `post_video_avg_time_watched` | reel | Needs `read_insights` |
| `watch_time` | `post_video_view_time` | reel | Needs `read_insights` |
| `follows` | `post_video_followers` | reel | Needs `read_insights`. Where Meta gives it |
| `shares` | `post_video_social_actions` | reel | Where Meta gives it |
| `shares` | `shares` | feed |  |
| `likes` | `post_video_likes_by_reaction_type` | reel | Where Meta gives it |
| `likes` | `reactions` | feed |  |
| `likes` | `likes` | reel |  |
| `comments` | `comments` | feed, reel |  |
| `engagements` | Rizamo adds up `likes`, `comments` and `shares` | feed, reel |  |
| `reach` | `post_impressions_unique` |  | Not given since 2025-11-15 |
| `impressions` | `post_impressions` |  | Not given since 2025-11-15 |

### TikTok [#tiktok]

| Metric | TikTok's name | Formats | Note |
| --- | --- | --- | --- |
| `views` | `video_views` | all |  |
| `reach` | `reach` | all |  |
| `likes` | `likes` | all |  |
| `comments` | `comments` | all |  |
| `shares` | `shares` | all |  |
| `saves` | `favorites` | all |  |
| `watch_time` | `total_time_watched` | all | Needs `video.insights` |
| `avg_watch_time` | `average_time_watched` | all | Needs `video.insights` |
| `follows` | `new_followers` | all | Needs `video.insights` |
| `profile_visits` | `profile_views` | all | Needs `video.insights` |
| `engagements` | Rizamo adds up `likes`, `comments`, `shares` and `saves` | all |  |

### Threads [#threads]

| Metric | Threads' name | Formats | Note |
| --- | --- | --- | --- |
| `views` | `views` | all | Needs `threads_manage_insights` |
| `likes` | `likes` | all | Needs `threads_manage_insights` |
| `comments` | `replies` | all | Needs `threads_manage_insights` |
| `reposts` | `reposts` | all | Needs `threads_manage_insights` |
| `quotes` | `quotes` | all | Needs `threads_manage_insights` |
| `shares` | `shares` | all | Needs `threads_manage_insights` |
| `engagements` | Rizamo adds up `likes`, `comments`, `reposts`, `quotes` and `shares` | all | Needs `threads_manage_insights` |

### YouTube [#youtube]

| Metric | YouTube's name | Formats | Note |
| --- | --- | --- | --- |
| `views` | `viewCount` | all |  |
| `engaged_views` | `engagedViews` | all | Where YouTube gives it |
| `likes` | `likeCount` | all |  |
| `comments` | `commentCount` | all |  |
| `watch_time` | `estimatedMinutesWatched` | all |  |
| `avg_watch_time` | `averageViewDuration` | all |  |
| `shares` | `shares` | all |  |
| `follows` | `subscribersGained` | all |  |

## Details [#details]

What a network says about a post that is not a count: rates in percent, where its views came from, who watched and how long they kept watching. A post's `details` hold the latest read only, with no history: each part is the last one a read brought, and `detailsAt` says when each was read, so one older than `metricsAt` is from an earlier read. A retention curve has at most 100 of the network's own points. They come with the post in `GET /v1/network-posts`, `GET /v1/analytics/posts` and MCP's `get_network_post`; MCP's lists leave out the retention curve and the viewers, which `get_network_post` has.

| Detail | Meaning | Given by |
| --- | --- | --- |
| `skip_rate` | The share of views skipped in the first 3 seconds, in percent. On Instagram, Meta estimates it, and marks it as in development. | Instagram (reel) |
| `completion_rate` | The share of viewers who watched the whole video, in percent. | TikTok (video) |
| `avg_view_percentage` | How much of the video a view watched on average, in percent. On YouTube, replays count, so a Short can pass 100. | YouTube (all) |
| `traffic_sources` | Where its views came from, as the network gives it: each source's share of the views in percent (`percent`), or its views (`views`), never one worked out from the other. | TikTok (all), YouTube (all) |
| `viewer_types` | New and returning viewers, followers and non-followers: each type's share of the viewers in percent (`percent`), or its views (`views`), as the network gives it. | TikTok (all) |
| `retention` | How many viewers were still watching at each point of the video, in percent of those who started: by the second (`unit` second) or by the share of the video's length from 0 to 1 (`unit` fraction; YouTube's first point is at 0.01, its last at 1, Facebook's first at 0, where the reel starts). On YouTube, replays count, so a point can pass 100. On Facebook, `at` is where each equal part of the reel starts, and its value that part's plays as a share of all the reel's plays: a later part can pass an earlier one. | Facebook (reel), TikTok (video), YouTube (all) |
| `viewer_demographics` | Who watched it, by age, gender, country and city: the groups the network gives, largest first, each as a share in percent (`percent`, its `count` 0) or as views (`count`), as the network gives it, never one worked out from the other. On Facebook, views by age and gender and by country, on reels, given only with data for 100 or more people. | Facebook (reel), TikTok (all) |

Shares are the network's own, in percent from 0 to 100. Where a network gives counts instead, a list has its `views`: Rizamo never works a share out of counts, or counts out of a share.

## Engagements [#engagements]

- **Instagram:** its own total, `total_interactions`.
- **Facebook:** Rizamo adds up `likes`, `comments` and `shares`.
- **TikTok:** Rizamo adds up `likes`, `comments`, `shares` and `saves`.
- **Threads:** Rizamo adds up `likes`, `comments`, `reposts`, `quotes` and `shares`.
- **YouTube:** none.

The engagement rate is engagements per 100 people reached, as each post's own: in a report, of the posts published in the period with their numbers so far, over those whose reach is above 0, whichever `attribution`. Posts with no reach are left out rather than measured against their views, which count replays: Threads posts and YouTube posts.

## Account metrics [#account-metrics]

What happened on an account each day, as its network counts it. The overview adds the period's days up in `accountMetrics`. `reach` and `accounts_engaged` are each day's people added up, so someone reached on two days counts twice, and they are missing where no account gives them. Each day's are in `series[].accountReach` and `series[].accountsEngaged`, and each network's in `byNetwork[].accountReach` and `byNetwork[].accountsEngaged`.

| Metric | Meaning | Adds up as |
| --- | --- | --- |
| `reach` | People who saw the account's content that day, each once. Summed across days, one person counts once per day. On Facebook, Meta's Viewers: people the Page's content was played or shown to, paid and organic together, which Business Suite shows as Viewers. On Instagram, Meta's estimated reach, ads included, which Business Suite no longer shows: its Viewers are counted another way and can differ. | Sum |
| `reach_followers` | People reached that day who follow the account, each once. | Sum |
| `reach_non_followers` | People reached that day who do not follow the account, each once. | Sum |
| `views` | Times the account's content was played or shown that day, replays included. On TikTok, paid views included: TikTok counts organic and paid activity together. On Threads, Meta's reference calls it the times the profile was viewed; it is Threads Insights' Views, the times the posts were shown. | Sum |
| `views_followers` | Views that day by people who follow the account. On YouTube, by viewers subscribed to the channel when they watched. | Sum |
| `views_non_followers` | Views that day by people who do not follow the account. On YouTube, by viewers not subscribed to the channel when they watched. | Sum |
| `views_paid` | Views that day from ads. | Sum |
| `views_organic` | Views that day not from ads. | Sum |
| `views_feed` | Views that day of feed posts: photos and videos, carousels apart. | Sum |
| `views_carousel` | Views that day of carousels. | Sum |
| `views_reel` | Views that day of reels. | Sum |
| `views_story` | Views that day of stories. | Sum |
| `views_short` | Views that day of Shorts. | Sum |
| `views_video` | Views that day of regular videos: not Shorts, live streams or stories. | Sum |
| `views_live` | Views that day of live streams. | Sum |
| `engagements` | Interactions with the account's content that day: the network's own total, or its likes, comments and other interactions added up. | Sum |
| `accounts_engaged` | Accounts that interacted with the content that day, each once. | Sum |
| `likes` | Likes that day; on Facebook, every reaction. | Sum |
| `comments` | Comments that day; on Threads, replies to the profile's posts. | Sum |
| `shares` | Shares and sends that day. | Sum |
| `saves` | Times the content was saved that day. | Sum |
| `replies` | Replies to stories that day. | Sum |
| `reposts` | Times other accounts reposted the content that day. | Sum |
| `quotes` | Times other profiles quoted the profile's posts that day. | Sum |
| `clicks` | Clicks that day on links the profile shared. | Sum |
| `profile_visits` | Views of the profile or Page that day. | Sum |
| `profile_actions` | Taps on the profile's buttons that day: address, call, email and text on Instagram; contact details and the call to action on Facebook. | Sum |
| `follows` | Accounts that started following that day. On YouTube, subscribers gained. | Sum |
| `unfollows` | Accounts that stopped following that day. On YouTube, subscribers lost. | Sum |
| `video_views` | Video plays of 3 seconds or more that day. | Sum |
| `watch_time` | Time people watched the account's videos that day. | Sum, in milliseconds |

| Metric | Instagram | Facebook | TikTok | Threads | YouTube |
| --- | --- | --- | --- | --- | --- |
| `reach` | `reach` | `page_total_media_view_unique` | `unique_video_views` | no | no |
| `reach_followers` | `reach` by `follow_type` (`FOLLOWER`), where Meta gives it | no | no | no | no |
| `reach_non_followers` | `reach` by `follow_type` (`NON_FOLLOWER`), where Meta gives it | no | no | no | no |
| `views` | `views` | `page_media_view` | `video_views` | `views` | `views` |
| `views_followers` | `views` by `follow_type` or `follower_type` (`FOLLOWER`), where Meta gives it | `page_media_view` by `is_from_followers` (`1`), where Meta gives it | no | no | `views` by `subscribedStatus` (`SUBSCRIBED`), for some accounts only, where YouTube gives it |
| `views_non_followers` | `views` by `follow_type` or `follower_type` (`NON_FOLLOWER`), where Meta gives it | `page_media_view` by `is_from_followers` (`0`), where Meta gives it | no | no | `views` by `subscribedStatus` (`UNSUBSCRIBED`), for some accounts only, where YouTube gives it |
| `views_paid` | `views` by `media_product_type` (`AD`), where Meta gives it | `page_media_view` by `is_from_ads` (`1`), where Meta gives it | no | no | no |
| `views_organic` | no | `page_media_view` by `is_from_ads` (`0`), where Meta gives it | no | no | no |
| `views_feed` | `views` by `media_product_type` (`POST`), where Meta gives it | no | no | no | no |
| `views_carousel` | `views` by `media_product_type` (`CAROUSEL_CONTAINER`), where Meta gives it | no | no | no | no |
| `views_reel` | `views` by `media_product_type` (`REEL`), where Meta gives it | no | no | no | no |
| `views_story` | `views` by `media_product_type` (`STORY`), where Meta gives it | no | no | no | no |
| `views_short` | no | no | no | no | `views` by `creatorContentType` (`SHORTS`), where YouTube gives it |
| `views_video` | no | no | no | no | `views` by `creatorContentType` (`VIDEO_ON_DEMAND`), where YouTube gives it |
| `views_live` | no | no | no | no | `views` by `creatorContentType` (`LIVE_STREAM`), where YouTube gives it |
| `engagements` | `total_interactions` | `page_post_engagements` | no | `likes`, `comments`, `reposts` and `quotes` added up | no |
| `accounts_engaged` | `accounts_engaged` | no | `engaged_audience` | no | no |
| `likes` | `likes` | `page_actions_post_reactions_total` | `likes` | `likes` | `likes` |
| `comments` | `comments` | no | `comments` | `replies` | `comments` |
| `shares` | `shares` | no | `shares` | no | `shares` |
| `saves` | `saves` | no | no | no | no |
| `replies` | `replies` | no | no | no | no |
| `reposts` | `reposts` | no | no | `reposts` | no |
| `quotes` | no | no | no | `quotes` | no |
| `clicks` | no | no | no | `clicks` | no |
| `profile_visits` | no | `page_views_total` | `profile_views` | no | no |
| `profile_actions` | `profile_links_taps` | `page_total_actions` | no | no | no |
| `follows` | `follows_and_unfollows` by `FOLLOWER` | `page_daily_follows_unique` | `daily_new_followers` | no | `subscribersGained` |
| `unfollows` | `follows_and_unfollows` by `NON_FOLLOWER` | `page_daily_unfollows_unique` | `daily_lost_followers` | no | `subscribersLost` |
| `video_views` | no | `page_video_views` | no | no | no |
| `watch_time` | no | `page_video_view_time` | no | no | `estimatedMinutesWatched` |

Followers are not a metric but each account's count at the end of its day: the overview gives the count on the period's last day and its change.

## Views in a report [#views-in-a-report]

The overview's views (`kpis.views`, `series` and `byNetwork`) are each account's own views of each day, as its network counts them on its own screen: Business Suite, TikTok Studio and YouTube Studio show the same numbers. They count every post, reel, story and video of any age, and a new account's days go back as far as Rizamo reads them when it is connected, so its chart starts full. An account whose own days give no views, or are not collected yet, counts what its posts gained instead, by the day Rizamo read it. With `fields` (a campaign) or `attribution: publish`, views are the posts' own.

A day not in yet has no views: Meta's days are read from 10:00 UTC, TikTok's come 2 days late and YouTube's 3. As many days at the end of the period before are left out of `previous`, so the period is compared like with like, and `notes` says which.

## Audience [#audience]

Who follows an account, and who engaged with it this month, by age, gender, country and city, as last read.

| Network | Followers | Engaged this month | Only for accounts with |
| --- | --- | --- | --- |
| Instagram | yes | yes | 100 followers or more |
| Facebook | no | no |  |
| TikTok | yes | no | 100 followers or more |
| Threads | yes | no | 100 followers or more |
| YouTube | no | yes |  |

When the followers are active: `activeHours`, the account's followers by the hour (0 to 23, in UTC) on the newest day the network gave, the best times to post as data. Given by TikTok (`audience_activity`, accounts with advanced access or a verified business account, and 100 followers or more); the others have none, and `activeHoursGap` says why.

## When numbers are read [#when-numbers-are-read]

- **Posts:** an hour after a post goes out, again at 6 hours, then daily (each midnight UTC) to day 90, then every 30 days.
- **TikTok:** its numbers come up to 48 hours late, so its posts are first read at the first midnight UTC at least a day after they go out (24 to 48 hours), then daily.
- **YouTube:** its views, likes and comments are read at 1 and 6 hours like any network's; its other numbers come up to 72 hours late, from the read a day after a post goes out.
- **TikTok:** stops updating a post's numbers a year after it goes out. Rizamo reads them once more then, and stops.
- **YouTube:** after day 90, every 28 days, so a read held back a day or two still checks each post within 30.
- **Stories (Instagram):** every 2 hours while live, the last time 23 hours after they go up. Their numbers are final then: `metricsFinal` says so. Instagram accounts connected through a Facebook Page also get the final numbers Instagram sends after the story ends.
- **Not read:** Facebook stories. The network gives no numbers for them.
- **Accounts:** daily at 10:00 UTC, reading the newest 3 days again, since networks revise recent days; the audience weekly.
- **New posts (Instagram, Facebook, TikTok and Threads):** the newest are listed every hour, and the whole window daily to notice deleted posts. An account with an active comment automation is listed more often.
- **New posts (YouTube):** the newest are listed every 12 hours, and the whole window weekly to notice deleted posts. An account with an active comment automation is listed more often.

Each number has the time it was read (`metricsAt`). A read that fails for a passing reason is tried again, waiting longer each time.

## How far back [#how-far-back]

When an account is connected, Rizamo reads back:

- **Posts (Instagram, Facebook, TikTok and Threads):** the posts of the last 12 months, up to 500 from each list (Facebook lists posts and reels apart).
- **Posts (YouTube):** the posts of the last 12 months, up to 200 from each list (Facebook lists posts and reels apart).
- **Account days (Instagram, Facebook, Threads and YouTube):** the last 365 days.
- **Account days (TikTok):** the last 59 days, all the network keeps.

From then on, the new posts and days as above. A post published before its account was connected has one total for the time before Rizamo first read it.

## Days and time zones [#days-and-time-zones]

An account's days are its network's own, and a report matches them to its days by date, whatever its `timeZone`:

- **Instagram, Facebook, Threads and YouTube:** Pacific time (`America/Los_Angeles`)
- **TikTok:** UTC

A period of `days` ends yesterday, the last complete day in the report's time zone: today is not over, so it is left out. With `from` and no `to`, the period ends yesterday too.

A post's numbers go on the day they arrived, in the report's time zone (`attribution: received`, the default), or on the day the post went out (`publish`). A TikTok or YouTube post's first numbers, read a day or two after it went out, go on the day it went out. What a post gathered before its account was connected is on no day: it is in the post's totals and in `publish`, never in what arrived.

The period before is compared with only where Rizamo has all of it: a post's numbers when every account that gives them was connected before it began, an account's own numbers when its days reach back to it, and posts published when Rizamo's lists reached back that far (12 months from when an account was connected, less for an account with more posts than its first list holds). Otherwise `previous` is missing and `notes` says why.

## Missing and hidden numbers [#missing-and-hidden-numbers]

- A number a network does not give is missing from the answer, never `0`. The overview's `notes` say why one is missing or partial.
- Meta hides a number under 5: it is `null`, listed in `masked`, and counts as nothing in totals.
- Where the login did not allow the network's insights, a post has only its public counts:

| Network | Posts need | For | Account days need |
| --- | --- | --- | --- |
| Facebook | `read_insights` | `views`, `reach`, `clicks`, `avg_watch_time`, `watch_time` and `follows` | `read_insights` |
| TikTok | `video.insights` | `watch_time`, `avg_watch_time`, `follows` and `profile_visits` | `user.insights` |
| Threads | `threads_manage_insights` | `views`, `likes`, `comments`, `reposts`, `quotes`, `shares` and `engagements` | `threads_manage_insights` |

## What each network does not give [#what-each-network-does-not-give]

- **Instagram:** No `clicks` on its posts and no `impressions` (since 2025-04-21).
- **Facebook:** No `saves` on its posts, no `impressions` (since 2025-11-15), no numbers for stories and no audience (Meta's current API gives none for Pages).
- **TikTok:** No `clicks` on its posts. A post's profile visits, and the account's reach, accounts engaged, follows and unfollows, come only for accounts with TikTok's advanced access or verified business accounts: otherwise they are missing, with a note.
- **Threads:** No `reach`, `saves` or `clicks` on its posts.
- **YouTube:** No `reach`, `engagements`, `saves` or `clicks` on its posts.
