Skip to content

track('workout_started')

See what people do in your product, on every platform.

Visitors, sessions, conversions and every event you send, over time and against the period before. Split any of it by platform, source, page or screen, location and technology, without writing a query.

  • Web and app events side by side
  • Days in your time zone
  • Bots and your own traffic left out

breakdowns

Split any number by where it came from.

Every report can be narrowed to one platform. The Overview breaks your traffic down four ways, with web paths and app screen names side by side, so a page and the screen that does the same job can be compared.

  • Sources: channel, referrer and campaign
  • Pages and screens, with entry and exit pages and hostnames
  • Locations: country, region and city
  • Technology: device, OS, browser, app version and SDK

live events

Watch events arrive as they happen.

See who is online right now, activity minute by minute over the last half hour, and each event as it comes in, from every platform. It is also the quickest way to check an SDK you just installed.

  • Events show up within seconds
  • Online now, and the last 30 minutes by minute
  • Each event with its platform and place

what is tracked

Useful from the first line of code.

The SDKs send page views, screens and app lifecycle events on their own. You add the events that matter to your product with track(), in snake_case.

Events the SDKs send automatically
EventWhen
$pageviewOn load and on every single-page-app route change
$page_leaveWhen the page is left, with active time and scroll depth
$app_first_openFirst launch after install
$app_openLaunch, and every return to the foreground
$app_backgroundLeaving the foreground, with foreground time
$screenEach screen, with React Navigation or the Flutter navigator observer

App events come from the Flutter SDK on iOS and Android.

import { rabolic } from '@rabolic/web'

rabolic.init({ projectKey: 'rb_pub_…', trackRoutes: true })

// after signup or login
rabolic.identify(user.id, { plan: 'pro' })

rabolic.track('signup_completed', { method: 'google' })

clean numbers

Counted the way you would count them.

  • Bots left out

    Web traffic from bots is recognized and kept out of reports.

  • Environments kept apart

    Each key belongs to production, staging or development, and reports show one environment at a time.

  • Your own traffic too

    Visits from your office’s IP ranges and your test users stay out unless you include them.

  • Days in your time zone

    Every day and week starts at midnight where your project is, not in UTC.

analytics faq

Product analytics, answered.

Which events are tracked automatically?

On the web, a $pageview on load and on every route change of a single-page app, and a $page_leave with active time and scroll depth. In Flutter apps on iOS and Android, $app_first_open, $app_update, $app_open and $app_background, and a $screen for each screen when you add the navigator observer. Everything else is an event you send with track().

What can I break the numbers down by?

Platform, and on the Overview: sources (channel, referrer, campaign), pages and screens (including entry and exit pages and hostnames), locations (country, region, city) and technology (device, OS, browser, app version and SDK).

Are bots and our own visits counted?

Not by default. Reports leave out bot traffic, internal traffic from the IP ranges you set for the project, and test users, unless you choose to include them.

How quickly do events show up?

Within seconds in the live events. Report results are cached for a minute while the range includes today, so trends catch up within about a minute.

Which time zone are the days in?

The project’s own. Every day and week in a report starts at midnight in the time zone you set for the project.

Can I compare with the previous period?

Yes. The Overview shows each number against the period before it, and how much it changed.

How should I name my events?

In snake_case, like signup_completed or checkout_completed, with properties for the details. Names starting with $ are reserved for the events the SDKs send themselves. One event can be up to 32 KB.

See your first events in minutes.

Start a 3-day trial without a card. It begins with your first event, so you can set up the SDKs first.

  1. 1

    Create a project

    Sign up, name your project, and copy its publishable key.

  2. 2

    Add an SDK

    Web, React Native, Flutter or Node.js, or the HTTP API. Or run npx rabolic init.

  3. 3

    Watch the first event arrive

    It shows in live events within seconds, and your trial starts then.