Inklate Docs
Analytics

Syncing metrics

Inklate refreshes post metrics on a background cadence that decays as a post ages, and every published post has a "Sync now" to pull fresh numbers on demand.

Metrics aren’t live — Inklate pulls them from each platform on a schedule and stores a running time series. A background job keeps recent posts fresh, and a per-post Sync now lets you pull the latest numbers whenever you want.

The background cadence

A scheduled job sweeps every organization’s published placements and refreshes the ones that are due. The cadence decays with a post’s age, because engagement front-loads:

  • First 7 days — refreshed every 6 hours.
  • Day 7 to day 30 — refreshed once a day.
  • After 30 days — no longer synced automatically.

Each refresh appends a snapshot to the post’s metric time series (the source of truth) and updates the fast per-placement cache the lists and tiles read from. Because the series is append-only, the per-day “gained” trends on the analytics and per-post views are just the deltas between consecutive snapshots.

Channels that are disconnected, and grants that have expired, freeze: their history stays, but new syncs stop — the platform would refuse the token anyway. Reconnecting the channel resumes syncing.

Sync now

Every published post’s metrics panel has a Sync now control for pulling fresh numbers off the background cadence — useful right after a post takes off, or to revive a post older than 30 days that the cron no longer touches.

It’s rate-limited so a burst of clicks can’t hammer a platform:

  • A 15-minute cooldown per post. If everything synced within the last 15 minutes, Sync now tells you it synced recently instead of firing.
  • Clicks are debounced and serialized per post, so a run in flight absorbs repeat clicks rather than stacking up.
  • A post with no live placements yet has nothing to sync, and says so.

When a sync does fire, the panel shows “Syncing…” and settles on “Synced <time> ago” once the fresh numbers land. Unlike the background job, Sync now ignores the 30-day age cutoff — that’s what lets it revive an older post.

What a sync writes

A sync fetches each due placement’s metrics from its platform in parallel, then writes them in one short transaction: a new snapshot per placement plus a cache refresh. Only real networks are ever synced or shown, and the same five-metric, null-aware contract applies — a platform that doesn’t report a metric writes null, not 0, so no sync ever fabricates a number.