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.

EventMeaning, and what to send with it
app_openedThe app came to the foreground. Once per session.
onboarding_startedThe first onboarding screen was shown.
onboarding_stepAn onboarding screen was completed. Send `step` (1-based) and `name`.
onboarding_completedThe last onboarding screen was completed and the app proper opened.
signup_startedAn account creation or sign-in form was shown.
signup_completedThe account exists and the user is signed in. Send `identify` after this.
paywall_viewedA paywall was shown. Send `placement` (e.g. onboarding, settings, feature_gate).
trial_startedA free trial began. Send `product` and `placement`.
purchase_startedThe system purchase sheet was presented. Send `product`.
purchase_completedPayment went through. Send `product`, `price`, `currency`.
purchase_failedThe purchase was cancelled or failed. Send `product` and `reason`.
subscription_startedA paid subscription became active (first charge, including after a trial).
subscription_renewedA subscription renewed.
subscription_cancelledThe user turned off auto-renew, or the subscription lapsed.
screen_viewedA screen was shown. Send `screen`.
feature_usedA feature was used. Send `feature`.
first_value_completedThe first real core outcome completed. Persist a deduplication marker; send once per user/installation, with `outcome` and experiment identifiers, never personal content.
meaningful_winA real completed outcome matches the app system win definition. Send `outcome`; do not infer satisfaction or a rating.
review_request_attemptedThe 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_shownAn 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.
  • ts is 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.