Inklate Docs
Analytics

Metrics and coverage

Inklate tracks five metrics on a contract where null ≠ 0 — a metric a platform doesn't report is unknown, not zero. Coverage varies by network and scope.

Inklate normalizes every network onto the same five metrics, and is honest about what each one reports. A metric a platform doesn’t expose comes back as null (unknown), never 0, so a total is blank only when nothing reported it — never a misleading zero.

The five metrics

Every placement reports up to five numbers:

  • Impressions — how many times the post was seen.
  • Reactions — likes and equivalents.
  • Comments — replies on the post.
  • Shares — reposts, retweets, and quotes.
  • Clicks — link/entity clicks.

Engagement is a derived headline: reactions + comments + shares — the three interactions every live platform reports, so it stays comparable across networks. Impressions and clicks are deliberately left out of engagement because only some platforms expose them, which would bias the number toward those platforms. Engagement rate is engagement ÷ impressions, and is null (not 0) whenever impressions are unknown, so a post with no impressions data has no misleading rate.

Why null ≠ 0

A null means “this platform never told us,” and a 0 means “the platform reported zero.” Keeping them distinct matters through aggregation: when Inklate rolls placements up into an org total or a per-provider split, the total is null only when no placement reported that metric — one real zero doesn’t get lost, and one silent gap doesn’t get invented as a zero. In the UI, null renders as an em-dash; the tiles even say how many of a window’s channels are actually reporting impressions.

Per-provider coverage

The four live networks — LinkedIn, X, Instagram, and Facebook — differ in what their APIs expose. LinkedIn splits further: a company page post reports all five metrics, while a member profile post reports only reactions and comments (LinkedIn has no member-post impressions, shares, or clicks API, so those are honestly null). On X, impressions, reactions, comments, and shares (retweets + quotes) come through, but clicks are never reported. Instagram always reports reactions and comments; impressions and shares come from the insights API and need the instagram_manage_insights scope. Facebook Page posts report reactions, comments, and shares directly, while impressions and clicks come from Page-level insights.

MetricLinkedIn (page)LinkedIn (profile)XInstagramFacebook (Page)
ImpressionsYesYesScopeInsights
ReactionsYesYesYesYesYes
CommentsYesYesYesYesYes
SharesYesYesScopeYes
ClicksYesInsights

”—” means the network has no API for that metric, so it stays null. “Scope” and “Insights” mean the metric is available only when the extra permission is granted.

Scope degradation

Some metrics ride on permissions beyond the basics. When those aren’t granted — for example an Instagram connection without instagram_manage_insights, or a Facebook post without Page-insights access — Inklate does not fail the whole sync. It records the metrics it can (reactions and comments) and degrades the gated fields to null. Reconnecting the channel with the fuller permission set lets the next sync fill them in. See Channels for what each network can connect and grant.