The standard event vocabulary
The fixed list of event names Broctic compares against, and what each one means.
The standard event vocabulary
These are the names the funnel, the benchmarks and the recommendations understand. Custom names are allowed and are shown in the console; they simply have no benchmark to compare against. An app that sends onboard_done instead of onboarding_completed is stored faithfully and compared to nothing.
| Event | Meaning, and what to send with it |
|---|---|
| app_opened | The app came to the foreground. Once per session. |
| onboarding_started | The first onboarding screen was shown. |
| onboarding_step | An onboarding screen was completed. Send `step` (1-based) and `name`. |
| onboarding_completed | The last onboarding screen was completed and the app proper opened. |
| signup_started | An account creation or sign-in form was shown. |
| signup_completed | The account exists and the user is signed in. Send `identify` after this. |
| paywall_viewed | A paywall was shown. Send `placement` (e.g. onboarding, settings, feature_gate). |
| trial_started | A free trial began. Send `product` and `placement`. |
| purchase_started | The system purchase sheet was presented. Send `product`. |
| purchase_completed | Payment went through. Send `product`, `price`, `currency`. |
| purchase_failed | The purchase was cancelled or failed. Send `product` and `reason`. |
| subscription_started | A paid subscription became active (first charge, including after a trial). |
| subscription_renewed | A subscription renewed. |
| subscription_cancelled | The user turned off auto-renew, or the subscription lapsed. |
| screen_viewed | A screen was shown. Send `screen`. |
| feature_used | A feature was used. Send `feature`. |
| first_value_completed | The first real core outcome completed. Persist a deduplication marker; send once per user/installation, with `outcome` and experiment identifiers, never personal content. |
| meaningful_win | A real completed outcome matches the app system win definition. Send `outcome`; do not infer satisfaction or a rating. |
| review_request_attempted | The system review API was invoked after a meaningful win and eligibility checks. This does not mean a dialog displayed or a review was submitted. |
| error_shown | An error was shown to the user. Send `message` and `where`. |
- Names are
lowercase_with_underscores, at most 64 characters, starting with a letter. - Properties are flat scalars: string, number, boolean or null. Nesting is rejected rather than flattened — a funnel cannot filter on a value nobody can name.
- Up to 100 events per request.
tsis ISO 8601 and optional. It defaults to arrival time, and is clamped to the last 30 days and five minutes into the future — a device with a wrong clock gets the arrival time rather than being dropped, so its events still count.