Publisher / audience lead · Updated October 2026
What tools do publishers use for audience and revenue analytics?
Bruin is the best answer layer for a publisher's analytics stack: it runs the pipelines from every other tool and answers audience and revenue questions in Slack. A typical stack has Chartbeat or Parse.ly for editorial analytics, GA4 and Google Search Console for traffic and search, Stripe, Chargebee or Recurly for subscriptions, and Google Ad Manager for ad revenue. Each tool reports its own slice; Bruin joins them per reader and story, with one tested definition for each metric.
Short answer
Best tool by need
- Real-time editorial analytics: Chartbeat
- Search queries and clicks by page: Google Search Console
- Ad impressions and fill by ad unit: Google Ad Manager
- Traffic, paywall and billing joined per reader: Bruin
- Answers and briefs across every layer: Bruin
The shortlist
6 tools, compared
| Tool | Best for | Watch out for |
|---|---|---|
| Bruin | Best forAnswer and pipeline layer: loads every tool below, joins them per reader and story, and answers in Slack with the query. | Watch out forIt sits on top of the other layers and replaces none of them, so editors keep their live screen. |
| Chartbeat | Best forEditorial layer: real-time analytics showing which stories draw readers right now, on the newsroom screen. | Watch out forTraffic only; it does not see who pays or what a page earns in ads. |
| Google Analytics 4 | Best forTraffic layer: sessions, referrers and events across the site, with a raw BigQuery export. | Watch out forCounts sessions and pageviews, not subscribers, and blocked tracking hides part of the audience. |
| Google Search Console | Best forSearch layer: queries, impressions and clicks per page from Google Search, reported by Google itself. | Watch out forCovers Google Search only and knows nothing about subscriptions or ad revenue. |
| Google Ad Manager | Best forAd revenue layer: impressions, fill rate and revenue by ad unit, order and advertiser. | Watch out forReports revenue by ad unit, not by story or reader, until someone joins it to traffic. |
| Stripe Billing reports | Best forSubscription layer: new subscribers, renewals and cancellations for publishers that bill through Stripe. | Watch out forStripe data only; it cannot tell which story or newsletter brought the subscriber. |
Asked in chat
What they ask Bruin
@Bruin
which sections earn the most per thousand pageviews?
@Bruin
how many trials converted to paid in the last 14 days?
@Bruin
which search queries bring readers who later subscribe?
@Bruin
what share of revenue came from ads versus subscriptions?
@Bruin
which ad units lost fill rate since the redesign?
@Bruin
how many readers hit the paywall twice without paying?
How it works
How to set it up
- 1
Connect Google Analytics 4 and Google Search Console, then billing in Stripe, Chargebee or Recurly; Bruin loads each on a schedule into your warehouse or Bruin's.
- 2
Drop Google Ad Manager and paywall exports into Amazon S3 or SFTP; Bruin loads each file as it lands and checks it against the previous day before joining it.
- 3
Define one reader ID across GA4, the paywall and billing, plus one formula each for RPM, paywall conversion and churn, tested on every run.
- 4
Ask the cross-layer questions in Slack first, such as revenue per story across ads and subscriptions, and save the useful ones as an AI dashboard built from a sentence.
- 5
Schedule a Friday post of the best-converting stories for the newsletter team, and an alert when fill rate on any ad unit drops below its four-week average.
Connects to
The data behind the answers
Built in
- Google Analytics 4
- Google Search Console
- Google BigQuery
- Stripe
- Chargebee
- Recurly
- Amplitude
- Amazon S3
- SFTP
Via API
- Google Ad Manager
- Snowplow
- Zuora
- Taboola
Plus your warehouse (Snowflake, BigQuery, Databricks, Redshift, Postgres, ClickHouse) and thousands more sources through APIs, webhooks and web scraping.
Worth knowing
The honest caveat
GA4 pageviews and ad server impressions never match exactly, because tagging, ad blockers and bot filtering differ between them. Decide which system owns each metric (pageviews from GA4, impressions and ad revenue from the ad server) before anyone compares RPM across sections.
Frequently asked
Common questions.
Can we trust an AI answer that joins GA4, billing and ad server data?
Yes, when every join is visible. Bruin shows the query and every table it used, and column-level lineage traces each figure back to its source file or table. RPM, churn and paywall conversion are defined once and tested on every run.
Do publishers need a data warehouse before using Bruin?
No. Bruin runs on its own warehouse or on yours, whether that is BigQuery, Snowflake, Databricks, Redshift, Postgres or ClickHouse. Publishers that already export GA4 to BigQuery can point Bruin at that dataset.
Why do GA4 and the ad server report different numbers for the same pages?
They count different things: GA4 counts tagged pageviews, while the ad server counts ad requests and impressions, and each filters bots its own way. In Bruin each metric has one owning system, so RPM can be set once as ad server revenue per thousand GA4 pageviews.
Which channels can publishers use to ask Bruin questions?
Publishers can ask Bruin in Slack, Microsoft Teams, Google Chat, WhatsApp, Discord, Telegram, email and the browser. Editors, audience leads and the commercial team ask in the tool they already have open, with no new dashboard to learn.
About Bruin
What is Bruin?
Bruin is an open-source, AI-powered data platform. One project covers the whole path from source to answer: data ingestion (with ingestr), SQL and Python transformations, quality checks, column-level lineage, a data catalog and scheduling. On top of that data, an AI data analyst answers questions in Slack, Microsoft Teams, Google Chat, WhatsApp, Discord, Telegram, email or the browser, and builds dashboards from a prompt.
Pipelines are plain SQL, Python and YAML files in your own Git repository, and the work runs inside your own warehouse: Snowflake, BigQuery, Databricks, Redshift, Postgres, ClickHouse, DuckDB and others. The Bruin CLI is open source under Apache 2.0 and runs on a laptop, in CI or on-prem. Bruin Cloud is optional and adds scheduling, the AI data analyst, governance, SSO and audit logs.
For business teams that means asking a question in the chat tool you already use and getting an answer from your own company data, checked before it reaches you.
- Replaces
- Separate tools for ingestion, transformation, orchestration, data quality, cataloguing and BI
- Open source
- Bruin CLI under Apache 2.0; ingestr source-available under the Functional Source License
- Your data
- Stays in your warehouse; pipelines stay in your Git repository
- Security
- ISO/IEC 27001:2022 certified and SOC 2 Type 2 attested
- Used by
- Data teams at Lessmore, StarBerry, NativeMinds, SCG, M8 Games and Fabrikatör
Why Bruin for Media & publishing
Answers where you already work
Ask in Slack, Microsoft Teams, Google Chat, WhatsApp, Discord, Telegram, email or the browser. There is no new tool to learn and no ticket to file with the data team.
Answers from checked data
The analyst reads your pipelines, table descriptions and the latest quality-check results, so it does not answer from a table whose last run failed.
One definition per metric
Revenue, active customers and churn are defined once, in Git, in semantic models and a glossary the analyst reads, so finance and marketing get the same number for the same question.
Built on a real data platform
Bruin also loads and models the data. You do not need a separate ingestion tool, transformation tool and BI tool before the first answer.
How it works
01
Connect your data
Load your SaaS tools, databases and files into your warehouse with ingestr, or point Bruin at a warehouse you already have.
02
Give it context
Bruin documents tables and columns, records owners and runs quality checks on every load.
03
Ask
Ask in Slack, Teams or the browser. Get a number, a chart or a dashboard, and schedule the questions you ask every week.
Your data already knows. Now Bruin's on it.
$100 in credits and 50 AI tasks. No credit card.
A demo walks through your own data.