Owlsignal

Did your gameloop actually work?

Stop interpreting twelve dashboards. Define your loop — "tutorial → first run → first boss → day-7 return" with target conversion % per stage — and Owlsignal tells you per build whether it landed. Built for the questions indie devs actually ask.

Free SDKs for Unity, Godot, Unreal + Web · 100k events / month free · EU-hosted · GDPR-clean

Owlsignal is in open beta. It's early, and it's built by one person who reads every signup — so expect rough edges, and expect an actual human to answer when you hit one. Sign up free, no card, and tell me what you're making.

Questions Owlsignal is built around

Generic SaaS analytics tools (Mixpanel, GameAnalytics, even unity_analytics) make you assemble these answers from raw events. Owlsignal is opinionated about the answers, because these are what you actually act on:

  • "Of every player who started the tutorial, how many finished?" Tutorial completion is the single biggest predictor of D1 retention in a roguelike. Templates ship with this funnel pre-built; the verdict shows up day one.
  • "Run 1 → run 2 conversion — is the meta-progression motivating?" In Hades / Dead Cells / Slay the Spire patterns, the second-run rate is the make-or- break number. Below 50% means your meta-loop isn't pulling them back.
  • "Did 1.4.0 introduce a new common crash?" Errors are grouped by signature (name + stack top), so a NullRef in CombatManager doesn't collapse with one in FogOfWar. Compare crash rate per build version, click into a session to see what the player did just before.
  • "Is my integration actually working?" Every app has a live view — events land as your players fire them, so you can confirm the SDK is wired before you ship, not three hours later. Click any session to replay what that player did, event by event.
  • "Is players returning on day 7 actually correlated with finishing the tutorial?" Retention cohorts split by the loop stage they reached. Useful for figuring out which moments to invest in.

Three things, done well

Loop builder + verdict
Templates per genre: run-based (Hades-shaped), endless arcade (Vampire Survivors-shaped), story/campaign (Disco Elysium-shaped), idle/incremental (Cookie Clicker-shaped), live-service F2P (Brawl Stars-shaped), multiplayer (Among Us-shaped), sandbox (Minecraft-shaped). Or describe your game in plain English and let our AI suggest one. Each app shows a one-line verdict against your % targets.
Retention, computed for you
Weekly cohort heatmap — D1, D7, D14, D30. You never fire a retention event: Owlsignal derives Day:N:Returned, SessionCount:N and ActiveDays:N server-side from your session timestamps. Nothing to instrument, nothing to get wrong.
Error context that helps
Unity unhandled exceptions surface here, deduplicated by stack-top signature. Click into a specific occurrence → see the full session timeline (every progression / design / resource event the player fired in the 90 seconds before crash). This is the workflow that turns "we have a crash" into "I know what to reproduce".

What an event looks like in Owlsignal

The Unity SDK ships sensible auto-events — Session:Start, Session:End, Client:Foregrounded, Error:Unity:Unhandled — and helper methods that match the conventions:

// Roguelike example — exactly what Hades-style would emit:
OwlsignalClient.TrackProgression("Start:Run");
OwlsignalClient.TrackDesign("FirstTime:WeaponEquipped");
OwlsignalClient.TrackProgression("Complete:Boss:Tartarus");
OwlsignalClient.TrackProgression("Fail:Run", value: 1247); // run length s
OwlsignalClient.TrackResource("Source:Darkness", 50);
OwlsignalClient.TrackError("Error:CombatNullRef");

You name your events. We suggest a shape, you adapt. Examples by pattern:

  • Progression: Start:Run, Complete:Run:Underworld, Fail:Run:NoFuel, Complete:Chapter:1
  • Design / first-time: FirstTime:UpgradePurchased, FirstTime:CoOpJoined, Friction:NoCommandIn60s
  • Retention: Day:1:Returned, Day:7:Returned, Day:30:Returned (auto-derived server-side; you don't fire these — Owlsignal computes them from your session timestamps)
  • Resource / monetization: Source:Gold, Sink:Currency:Premium, Purchase:Made, Purchase:Premium
  • Multiplayer / social: Social:InviteFriend, Social:JoinedSession

Owlsignal vs other tools indie devs use

 OwlsignalGameAnalyticsUnity AnalyticsMixpanel
Pricing€19/mo flat — 1M events, no per-event surprise."Free" tier with severe limits; paid is per-MAU.Bundled with paid Unity license; data is theirs.Per-event past 1M free. Cheap then steep.
Loop / funnel verdictBuilt around it. One-line per-app verdict.Funnel viewer; you set thresholds in your head.Funnels in dashboard; no targets/verdict.Funnels yes; aimed at SaaS, not games.
Who owns the companyZisomedia (NL). Analytics is the product you pay for.Subsidiary of Mobvista, an ad-tech group.Unity — who also sell you ads and monetization.Independent; US-based, VC-funded.
Data residencyEU-only stack. Anonymous by design.Global. Their developer policy requires you to collect player consent first.US-headquartered.US default; EU-hosting on enterprise.
Engine supportUnity, Godot, Unreal and Web — all free, all open-source.Unity / Unreal / Godot / mobile.Unity-only.Generic web/mobile, not engine-specific.

Engine SDKs

Unity, Godot and Unreal — all free, all open-source, all against the same backend and the same event schema. Drop it in, paste your API key, and the auto-events start flowing within seconds. Editor mode has a built-in dry-run flag — events log to the console without polluting your dashboard. Built players always send. The Unity version:

// Manual init (or use the OwlsignalConfig ScriptableObject for auto-boot):
OwlsignalClient.Initialize(
    apiKey: "pk_live_...",
    endpointUrl: OwlsignalClient.DEFAULT_ENDPOINT,
    buildVersion: Application.version
);

// At an interesting moment in your game:
OwlsignalClient.TrackProgression("Complete:Tutorial");
OwlsignalClient.TrackResource("Purchase:Made", value: 4.99f);

Companion sites + non-game products

The web (JS/TS) SDK ships today — use it for companion marketing sites, LiveOps dashboards, or any non-Unity surface where you want events flowing into the same Owlsignal organization. Same backend, same event schema, same dashboards. See the generic Owlsignal pitch → for non-game use cases.