Analytics
Read visitors, sessions, acquisition, location, engagement, and retention for your app and site.
What Analytics answers
Analytics is the usage picture for your whole app and site: who visited, where they came from, which pages or screens they used, and whether they came back. It starts as soon as your app or site loads the Rheo SDK, including visits that never open a flow.
Opening an app lands on Analytics Overview. The sidebar group is Analytics.
| Question | Where to look |
|---|---|
| How is the product used across web and mobile? | Analytics (this page) |
| How did people move through one onboarding flow? | Customers & analytics on that flow, or Convert |
| What did one person see? | Customers |
A custom event recorded here does not start an Engage automation. Flow starts, step views, and completions stay on the flow’s own analytics.
On the web, the site can hold collection until the visitor accepts. The host calls setAnalyticsConsent from @getrheo/react. Setup is in Product analytics.
Open a report
- Go to Apps and open an app. You land on Analytics Overview.
- Use the Analytics group for Overview, Events, Acquisition, Demographic, Engagement, Retention, and Technology.
- Turn Show test data on to read the test environment, and off to read production. The choice is stored in the page link. See SDK environment.
Analytics history is 1 year on Indie, 3 years on Grow, and 5 years on Scale and Enterprise. A longer custom range is shortened to that window.
Shared controls
Every report has a date range in the header. Overview and Retention also put platform and segment in the header. The other reports put platform and segment inside Add filter.
| Control | What it does |
|---|---|
| Date range | Last 7 days, Last 30 days (the default), Last 90 days, or a custom window. Headline numbers compare with the previous window of the same length. |
| Platform | All platforms, Web, or Mobile. Mobile is iOS and Android together. |
| Segment | All users, or one segment from Customers → Segments. A segment that is still building is disabled and labeled (building). If you open one before it is ready, the page says the segment is still building. |
| Daily / Weekly / Monthly | How the chart groups time. |
A segment includes people who match it now, including an earlier anonymous id that belongs to the same customer. Membership can take a short time to catch up after someone enters or leaves. An empty segment loads and shows no activity.
Live users ignores the date range. It counts people with a product event in the last 5 minutes on the selected platform and segment.
Filters that travel
Events, Acquisition, Demographic, Engagement, and Technology share one filter bar.
- Choose Add filter.
- Under Audience, set Platform or Segment.
- Under the report groups, pick Channel, Referrer, Source, Campaign, Medium, Country, Region, Browser, OS, Device, Page, Entry, Exit, or Event.
- Choose one operator. Is and is not apply to every filter. Contains and does not contain apply to campaign, page, entry, exit, and event. Contains matches the exact characters, including capitals.
- For is and is not, check one or more values. For contains and does not contain, type each value and choose Add. Values in the same filter match with or. Different filters match with and. Each filter holds up to 20 values. Is not and does not contain keep visits whose value is empty.
- Remove a chip to clear that value. A chip reads the operator, such as Page contains /blog or Country is not United States.
Those filters stay in the page link when you move between those five reports, so a link you share keeps the same cut of traffic. A missing operator in an older link means is.
City, keyword, ad set, and creative stay on the report where you set them.
Is and contains keep a session when any value matches. Bounce and session time use that whole session. The page table and the events table list only the matching values. Is not and does not contain keep a session only when none of its values match, and the table lists the other pages or events those sessions still contain.
On a full report, select a table row to pin that value with is and open the next breakdown. On Acquisition that walks channel → referrer → source → campaign → medium, then creative, and keyword or ad set when that platform has them. On Demographic it walks country → region → city. On Engagement, a page, entry, or exit becomes a shared filter. A Page filter keeps the other events from sessions that viewed that page or screen. On Events, the row limits the report to that event name.
Check the box on a table row to draw it on the chart. The chart plots up to six rows. The header checkbox plots or clears the top rows. Visits with an empty value for that column are omitted from the ranking.
Overview
Analytics Overview opens with eight numbers. Select one to chart it and to rank the breakdown cards by it. The chart draws This period against Previous period. One bar on the same chart shows originating revenue from RevenueCat, Superwall, and Stripe added together. The bar stays in place for every metric. Add filter then Revenue source limits that bar and the Revenues tile to the providers you check. Renewals and refunds are not included.
| Metric | Meaning |
|---|---|
| Visitors | Distinct people with a product event in the range. Rheo counts the anonymous id on the device or browser. A user id your app sets later is shown on the person, and the visitor count still uses that anonymous id. |
| Sessions | Distinct sessions. A new session starts after 30 minutes without an event. |
| Views | Page views on web and screen views in apps. |
| Bounce rate | Share of sessions with at most one page or screen view. A lower rate is the favorable change. |
| Session time | Average time from the first event in a session to the last. A session with one event counts as 0s. |
| Events | Product events in the range. Flow funnel events and Engage track events are left out. |
| Revenues | Originating revenue from RevenueCat, Superwall, and Stripe in the range. The caption is that total divided by visitors. Renewals and refunds are not included. |
| Live users | Distinct people with a product event in the last 5 minutes, on the selected platform and segment. The date range is ignored. Select it to open the globe. The hint is Click to watch on the globe. |
The cards under the chart are previews. Each list shows 10 rows, and Details expands it. Show More opens the full report.
| Card | What you see |
|---|---|
| Acquisition | Channel, referrer, source, campaign, medium, and creative. Web also has keyword. Mobile also has ad set. |
| Engagement | Pages or screens, plus the entry and exit of each session. |
| Events | Event names and how often they fired. |
| Retention | Users (new and returning over time) or Retention rate (the share still active on each day after the first event, through day 30). |
| Location | A map, then country, region, and city. Show More opens Demographic. |
| Technology | Browser, operating system, and device. The browser tab is hidden when the platform is Mobile. |
| Flows | Flows with a start or a completion in the range, and each flow’s completion rate. The name opens that flow. Show More opens Convert Overview. |
| Users | People active in the range. Show More opens All customers. |
Ranked lists show the top 50 values.
Live users
The globe shows people active in the last 5 minutes.
- Switch 3D and 2D, pause rotation, and zoom.
- Search a place to focus the map.
- Select a marker to read that person: place, device, source, referrer, current page or screen, when the session started, and how many visits they have. Visit counts use the selected platform. An empty source or referrer is Direct. An unknown place is Unknown.
Coordinates come from the same location lookup as Demographic. A visit Rheo cannot place sits at an unknown point and does not draw a marker you can aim at a city.
Events
The chart metric is Events or Users. The table columns are the event name, Events, and Users. Select a column heading to sort. Select an event name to limit the report to that event.
Names you will always see when the SDK is collecting:
| Name | When it is recorded |
|---|---|
session_start | A new session begins. |
first_visit | The first time this browser is seen. |
first_open | The first time this app install is seen. |
page_view | A web page loads or the address changes. The name of the page is the path. |
screen_view | The app records a screen. |
Any other name is one your app sends, such as a workout logged or a purchase completed. The table includes up to 100 names. The web page name is the path, including a #/ hash route.
Acquisition
One ladder covers web and mobile.
| Column | Web | Mobile |
|---|---|---|
| Channel | Grouped from the landing page: Organic Search, Paid Search, Organic Social, Paid Social, Email, Affiliates, Display, AI, Referral, Organic, Direct, or Unassigned | Same groups. An organic install is Organic. A paid install uses the provider source. |
| Referrer | Hostname the visit came from. Your own site is left blank. | Empty. Install attribution has no web referrer. |
| Source | utm_source on the landing URL | Attribution provider, usually media_source |
| Campaign | utm_campaign | Attribution provider |
| Medium | utm_medium | The provider's placement channel |
| Ad set | Hidden | Attribution provider |
| Creative | utm_content | Attribution provider |
| Keyword | utm_term | Hidden |
The session keeps the landing hit. A later tagged page in that session does not move it. A new session after 30 minutes reads the URL it starts on.
Channel and Referrer omit visits recorded before this grouping shipped. Those rows stay in Visitors and the other columns. A range that still contains them will not add up to the visitor total on Channel or Referrer. After 5 years those older rows age out.
All platforms shows channel, referrer, source, campaign, medium, and creative. Keyword and ad set appear only on the platform that has them.
The table columns match the overview metrics: Visitors, Sessions, Views, Bounce rate, Session time, Events, and Revenue. Select a heading to sort.
Revenue is originating webhook gross, attributed to the customer's first source, campaign, channel, entry page, and country. A charge with no product-analytics touch yet ranks as (none). Renewals and refunds are not in this number. Technology and Retention do not have a revenue column.
Demographic
Country, Region, and City come from the network address on each analytics batch. Rheo stores the place and drops the address.
Country codes are shown as English names. Select a country to see its regions, then a region to see its cities. A city filter stays on this page.
The chart uses the same metrics and the same six-row plot as Acquisition.
Engagement
The labels follow the platform:
| Platform | Tabs |
|---|---|
| Web | Page, Entry page, Exit page |
| Mobile | Screens, Entry screen, Exit screen |
| All platforms | Pages and screens, Entry page or screen, Exit page or screen |
The entry is the first page or screen in the session. The exit is the last. A page row counts views of that path. Entry and exit rows count the sessions that started or ended there, and their views are the page views in those sessions. A page, entry, or exit you pin is shared with the other reports.
Web rows are URL paths. App rows are the screen names your app records.
Retention
| Metric | Meaning |
|---|---|
| New | Visitors active in this range whose first product event falls in this range. That first day is kept after the 5-year event history expires. A device clock far from the server does not change someone's first day. |
| Returning | Visitors active in this range whose first product event was before it. |
| Return rate | Returning visitors divided by visitors in this range. |
| D7 | Share of new visitors who came back on the 7th day after their first event. Cohorts that have not had 7 full days yet are left out, and the card shows a dash. |
| Repeat rate | Share of visitors with a product event on at least two days in this range. |
New and returning stacks those two groups on the chart. Select a row in the breakdown to limit the chart to that source, campaign, country, platform, or device, then clear the chip to widen it again. The group is the value on each person’s first product event. When that value was empty, the row is labeled (none).
Cohorts lists each group of new visitors and the share who were active again later. A cell stays blank until that offset has fully passed.
| Chart grouping | Columns |
|---|---|
| Daily | D1, D7, D14, D30 |
| Weekly | W1, W4 |
| Monthly | M1 |
Active days counts how many distinct days each visitor was active in the range: 1 day, 2–3 days, 4–7 days, and 8+ days.
The breakdown table repeats new visitors, returning visitors, return rate, and D7 for Source, Campaign, Country, Platform (Web, iOS, Android), and Device.
Technology
| Tab | What fills it |
|---|---|
| Browser | The web SDK. Hidden when the platform is Mobile. |
| OS | The browser on web, and iOS or Android from the app. Operating system is the family (iOS, Android, Windows, macOS, Chrome OS, Linux). |
| Device | Desktop, mobile, or tablet on web. The device the app reports on mobile. |
Rheo stores those labels and drops the raw browser string.
A person in Users
Each row shows a name, country, device, last seen time, and spend. The name is the user id your app set. When that id is empty, Rheo shows a shortened anonymous id. Spend is net webhook gross in USD for that person in the same range, including the first charge, renewals, and refunds, or – when there is none. Breakdown Revenue columns are originating charges only. The dots are the last 10 days; a filled dot is a day with a product event.
Select a row for a short activity summary, then open the customer profile for the full timeline. The profile exists when this person has also been seen as a Customer.
Limits
- You need read access to the app.
- After a traffic spike, totals can take a short time to catch up.
- A segment that is still building cannot be used until membership is ready.
Related
- Customers & analytics — funnels and completion for one flow
- Customers — one person’s timeline
- SDK environment — test and live
- Product analytics (Developer Guide) — what the SDK records, and
rheo analytics productin the CLI