Audience analytics for publishers, on reader events you own
Ask what readers did before they subscribed, and the answer sits in three systems: the analytics tool, the paywall and billing. None of them holds all three sets of events in one table, so the answer is three exports joined by hand.
Jitsu is an MIT-licensed event pipeline. It collects reader events from your website, apps and billing backend, runs JavaScript functions you write on them in transit, and loads them into your warehouse, alongside destinations such as Mixpanel, Google Ads and Meta Ads.
TL;DR
- Reader events land in one
eventstable in BigQuery, ClickHouse, Snowflake, Redshift or Postgres, and a ClickHouse warehouse comes with every Jitsu Cloud workspace. - Article metadata, URL clean-up and consent checks are functions you write once and attach to each connection that needs them, instead of shipping them in every app release.
- Billing sends subscriptions server-side, and Google Ads and Meta receive only the consented conversions.
- Pricing follows active events: Free covers 200,000 a month, and Business is $99 a month for 2M.
What publishers run through Jitsu
Reader events in your own warehouse
A function looks each article up in your CMS and writes its section and author onto the event, so editorial reporting runs on your own table instead of an analytics export. The function and the engaged-reading SQL are on the reader data warehouse page.
Which reading leads to a subscription
Until a reader logs in, everything they read sits under an anonymous ID. Once the billing system reports the subscription, a query in the warehouse ties it to the articles, paywalls and newsletters that came before, and only readers who consented to advertising are reported to Google Ads and Meta. Subscription analytics walks through the billing call, the consent function and the reading-history query.
Counting the readers your analytics misses
Ad blockers hide page views from browser analytics, and Safari's 7-day cookie cap splits a reader who returns after more than a week into a new one. A custom domain, on the Business and Enterprise plans, moves the script onto your own subdomain. Serving the anonymous ID from your own web server keeps returning Safari readers on one ID, and a separate measurement shows, browser by browser, how many page views never reached your analytics. Setup and query: server-side and first-party tracking.
Publishers on Jitsu
Investing.com, a financial news and market data publisher, sends 5 billion events a month through Jitsu from its website, Android app and iPhone app into Google BigQuery, Google Ads and Mixpanel.
Events publishers send
| Event | Emitted from | Why it matters |
|---|---|---|
page | Browser, Jitsu script | Article views with article_id, the base of content metrics |
screen | Apps, through Segment's libraries | App reads in the same table as web |
article_engaged | Browser, app | Engaged seconds and scroll depth, once per page view |
video_play_started | Browser, app | Video starts; never sent to ad platforms |
paywall_shown | Browser, app | Meter and paywall impressions |
newsletter_subscribed | Browser | Registration without a paywall |
signed_up + identify | Browser, app | Links the anonymous reader to an account |
subscription_started | Billing backend | The conversion ad spend is judged on |
trial_converted | Billing backend | First paid charge after a trial |
subscription_canceled | Billing backend | Churn reasons, warehouse only |
page_rendered | Server or edge | Server-side count for measuring blocker loss |
All 34 events, with property types and PII handling: media tracking plan (CSV), no form.
How the pipeline is laid out
Websites run Jitsu's JavaScript library, which uses the same track, page and identify calls as Segment's analytics.js, and mobile apps use Segment's open-source libraries, configured to send to Jitsu. The billing backend sends server-to-server events over the HTTP API.
Each source-to-destination connection runs its own chain of functions. A regional publisher with a metered paywall, for example, sends web and app events to BigQuery and Mixpanel, and billing events to BigQuery, Google Ads and Meta Ads.
Where it runs
| Option | What it is | Plan |
|---|---|---|
| Jitsu Cloud | Hosted by Jitsu in the United States | Free, Business, Enterprise |
| Private Cloud | A single-tenant deployment on your or Jitsu's dedicated GCP or AWS sub-account, managed by Jitsu. Servers are not shared with other customers | Enterprise |
| On Prem | Jitsu deployed on your infrastructure, on any cloud provider or your own servers | Enterprise |
| Open source | Self-hosted under the MIT license, on Kubernetes with the Jitsu operator | Free |
SOC 2 and the DPA are on the security page.
What it costs
An event counts once when it reaches at least one destination, whether it reaches one or five, and that count is the bill. Captured events cost nothing, and an event a function drops is free unless the function called fetch before dropping it.
| Active events a month | Plan | Price |
|---|---|---|
| Up to 200,000 | Free | $0 |
| 2,000,000 | Business | $99 a month |
| 5,000,000 | Business | $219 a month |
| 20,000,000 | Business | $819 a month |
Business adds $40 for each 1M active events past 2M, and Enterprise pricing is custom. Segment bills per monthly tracked user, which counts every anonymous ID never tied to a user ID; your own events-per-reader ratio comes from a query on the reader data warehouse page, and Jitsu vs Segment works the published prices.
Questions people ask
Does Jitsu work with dbt? Yes. Declare the events table as a dbt source and model on it like any other table. Every row carries message_id and a timestamp, so incremental models can filter on timestamp; ClickHouse models should select with FINAL to collapse duplicates.
Can Jitsu run next to Segment during a comparison? Jitsu's plugin for Segment's analytics.js, or a Segment Webhooks destination pointed at Jitsu, sends the same events to both.
How does consent work? The Jitsu JavaScript library takes your consent platform's choices through its privacy settings: send nothing until consent, drop user IDs, or strip the last octet of the IP address.
Get started with Jitsu
Pick the job above that matches your problem and start there, on the Free plan. Private Cloud and On Prem start with a conversation with the Jitsu team.