Keep more readers, and turn more of them into subscribers.
Signals tells your homepage, recommender and paywall what each reader is doing right now, so they respond while the reader is still on the page.
What publishers can do with it.
One SDK, one read call.
We host it, or it runs in your own AWS or GCP account. Signals collects events with its own SDKs, updates what it knows within a second of each event, and answers a read in 6ms at the median and 10ms at p95, in-region.
const reader = await signals.getServiceAttributes({
name: "homepage",
attribute_key: "domain_sessionid",
identifier: sessionId,
});
// { sections_read: ["politics", "climate"], stories_skipped: 7, visits_this_week: 4 }Before you hand this to an engineer.
Do we replace our CDP, recommender or paywall vendor?
No. Signals works out what each reader is doing right now and hands it to the tools you run. Your recommender keeps ranking, your CDP keeps its segments, and your meter or paywall vendor keeps deciding when the wall appears, with what this reader did in this visit as one more input.
We built our own homepage personalization. What does Signals add?
Keep it. Signals adds what a single streaming job rarely does. The same reader context goes to an assistant or agent, a rule fires into Braze or your CRM the moment it is met, and one set of definitions runs across every site you own. The next use case becomes a definition, not another job to maintain.
Most of our readers never log in. Does Signals need a login?
No. Signals keys what it knows on the session as well as the user, so an anonymous reader on their fourth politics story this visit is as visible to your homepage as a subscriber is. When a reader registers or subscribes, the same definitions can run on the user id as well.
Is this a data platform project?
No. Add the SDK to your site and app and collection starts. Your product team defines what it wants to know about a reader in the console, and an engineer reads it with one call and deploys through the CI/CD you have. Most of the wiring can be handed to a coding agent, and the docs, MCP server and agent skill are built so it can be.
Where does the data live?
In a deployment we host, or in your own AWS or GCP account. The events are yours either way, validated against your schemas on the way in, and the architecture is the same in both, so what you evaluate is what you run. Snowplow is ISO 27001 certified, and deployments run under GDPR and CCPA.
What if next-day data is fine for us?
Then a warehouse tool is the cheaper buy, and we would say so. If your homepage, paywall and newsletters can act tomorrow on what a reader did today, you do not need Signals. It earns its place when the response has to land while the reader is still on the page.
Try it on your own site.
Add the SDK, define one thing you want to know about a visitor, and watch it update while you click around. The free tier runs on the real engine: no card, no sales call.