Skip to main content
Your game reports to Flock over two separate surfaces. They answer different questions, are read by different people, and appear on different dashboards. Picking the wrong one puts your data somewhere real but useless — so it is worth two minutes up front. A crash is not a funnel step. Sending one through the other surface does not fail and does not warn — the entry is accepted, stored, and shown on a dashboard nobody was looking at.

Analytics

Engagement, retention and monetization, built from the sessions, screen views and transactions your game reports. Read on Dashboards → Game Metrics.
Analytics dashboards

Engagement, retention, and monetization dashboards in Flock.

Sessions

A session is the unit everything else is attributed to, and the SDK manages its whole life for you. That last row is the one worth knowing. Without it, a player who backgrounds your game overnight and returns in the morning reports a single fourteen-hour session, and every average you build on top of that is wrong.
Sessions are per sign-in, so a shared device reports one session per player rather than one per launch. Signing out closes the session before the next player starts theirs.
Withdrawing analytics consent discards the session in progress rather than sending it. Objecting to further processing is not a request to transmit one last record.

Log events

Developer diagnostics, in exactly three categories. Which one you pick decides where the entry appears.
These are for diagnostics, not gameplay. A level-complete recorded as a debug entry lands in Diagnostics → Events, where nobody building a retention chart will find it — and it will not appear in Game Metrics at all.
Log calls are synchronous and never block gameplay: they enqueue to an on-disk buffer and the SDK batches and delivers them for you.

Unexpected-termination detection

If a play session ends without a clean quit — a crash, a hang the player force-killed, or the OS evicting the game — the SDK detects it on the next launch and reports one app_termination event automatically. No integration needed.
Watch the abnormal rate per game version — a jump after a release is your earliest stability signal, no crash reporter required. Closing the game normally (in-game quit, Alt-F4, swiping the app away) never counts as abnormal.
Name things consistently. Whichever surface you are on, a small vocabulary of well-chosen names makes a dashboard readable and a sprawling one makes it useless.