circanalytics for Ghost publishers

Analytics for Ghost publishers

Know which stories get read to the end.

circ is analytics built for editorial decisions: how far readers get through each story, by author and tag, when they show up and where they come from. It's light on your pages, and built on reader privacy.

The dashboard's Overview for 30 days: pageviews, daily visitors, the share read to the end and median time on a story, each compared with the 30 days before, above a chart of pageviews per day and the most-read stories.The dashboard's Overview for 30 days: pageviews, daily visitors, the share read to the end and median time on a story, each compared with the 30 days before, above a chart of pageviews per day and the most-read stories.
The Overview. Every screenshot here shows sample data from a fictional publication.
  • Insight

    Editorially insightful

    Reports that start from the questions editors ask: what gets finished, whose stories hold readers, and which sources bring readers who stay.

    The reports
  • Performance

    Light on your pages

    About 1.5 KB, loaded asynchronously, and about two requests per pageview. No heartbeats, no dependencies, nothing that slows a story down.

    The tracker
  • Privacy

    Built on reader privacy

    No cookies, nothing stored on the reader's device, no IP addresses kept, and no way to follow a reader from one day to the next.

    The privacy model

Reports built for editors

Each report starts from a question an editor would ask, and can be narrowed to an author, a tag or a source.

  • What gets read, not just opened?

    Completion through the story body and engaged time, the time the page is actually in front of the reader, for every story.

  • Whose stories do readers finish?

    Pageviews are matched to your Ghost posts, authors and tags, and the match survives slug changes. See which beats hold attention.

  • When do readers show up?

    Hour of day by day of week, in your time zone, so you can time publishing and newsletters on evidence.

  • Which sources bring readers who stay?

    Sources, referrers and campaigns, each with the completion rate of the readers it sends.

  • What do readers click next?

    The links clicked inside each story, internal and outbound, counted per link.

    Off unless you turn it on
  • Do members read differently?

    Every report filtered to signed-out readers, free members or paid members. Never which member, and any number under 5 is withheld.

    Off unless you turn it on

Light on your pages

The tracker is a guest on your page, and behaves like one.

  • About 1.5 KB, compressed, with no dependencies, loaded asynchronously from Ghost's Site Footer.
  • About two requests per pageview: one when the page loads, one when the reader leaves. No heartbeats.
  • Never in the way. It doesn't hold up the page, and an error inside it never reaches your page.
  • Pinned, so it can't change under you. Each version has its own permanent address and an integrity hash, so the browser refuses any other file.

Built on reader privacy

circ counts what readers do with your stories without recognising any reader. That isn't a setting; it's how circ is built.

  • Nothing on the reader's device. No cookies, no local storage, and its requests carry no cookies at all.
  • No IP addresses kept. The IP address gives the country and the day's unique count, and is then dropped. So is the raw browser string.
  • Readers counted one day at a time. The code that counts them uses a secret deleted at the end of each day, so no reader can be followed from one day to the next. The trade is that circ has no returning-visitor counts.
  • No identities, no trails. No member IDs, emails or names, ever. Clicks are counted per link and never joined into one reader's trail.
  • Nothing turns on by itself. Optional collection changes only when you change your settings and your snippet, and every change is logged. Settings suggests your privacy policy's wording, from exactly what your site collects.
  • Your data, kept apart. Each publisher's data lives in its own database, never combined with another's, never sold or shared. When you leave, you can have it, and then it's deleted.

Exactly what's collected, field by field

Getting started

  1. Get in touch. Your site is set up for you; there's no self-serve signup yet.
  2. Paste one line into Ghost Admin's Site Footer code injection. The dashboard generates it for you.
  3. Add a read-only Content API key from a custom integration in Ghost Admin, so pageviews match your posts, authors and tags.
  4. Update your privacy policy with the wording the dashboard suggests.

Pricing and questions

Pricing depends on your site. Email for pricing, a walkthrough of the dashboard, or anything else about circ.

hello@circapp.io
The dashboard's Overview for 30 days: pageviews, daily visitors, the share read to the end and median time on a story, each compared with the 30 days before, above a chart of pageviews per day and the most-read stories.The dashboard's Overview for 30 days: pageviews, daily visitors, the share read to the end and median time on a story, each compared with the 30 days before, above a chart of pageviews per day and the most-read stories. A story's window: its pageviews, daily visitors, read to the end and median time since it was published, a chart of pageviews per day, how far readers got through it in steps of 10%, and the hours its readers came.A story's window: its pageviews, daily visitors, read to the end and median time since it was published, a chart of pageviews per day, how far readers got through it in steps of 10%, and the hours its readers came. The Authors report: each author's stories read, views, share of all views, share read to the end and median time.The Authors report: each author's stories read, views, share of all views, share read to the end and median time. When they read: a heatmap of pageviews by hour of day and day of week in an average week, with the busiest hour called out.When they read: a heatmap of pageviews by hour of day and day of week in an average week, with the busiest hour called out.