User analytics One person, not three devices
Profiles join the website, the app and the mini-program into one timeline. Segments update as events arrive. Accounts roll people up for B2B. And you can ask for all of it in a sentence.
- One profile per person
- Segments that stay current
- Identity across devices
- Privacy controls built in
Ask about your users
A scripted demo — no AI is called on this page.
RFM · paying customers, last 90 days
Champions
Recent · frequent · high value
18%
Loyal
Frequent, not the newest
24%
At risk
Used to buy often, 60+ days quiet
12%
Champions are 18% of payers and 41% of revenue. They came mostly from Newsletter. Treat them differently from the 24% loyal group who respond to discounts.
Segment · high value, going quiet
Matching now
1,284
Updated hourly as events arrive
Live segmentBy first-touch channel
1,284 people match. Send them to chat as a proactive audience or export the list for a win-back email — the segment keeps itself current.
Accounts · health below 60
| Account | Seats | Active 30 d | Events | Health |
|---|---|---|---|---|
| Acme Retail | 12 | 4 | 1,920 | 42 |
| Northwind | 8 | 6 | 3,410 | 58 |
| Bluebird Co. | 5 | 5 | 2,860 | 71 |
| Globex | 20 | 9 | 5,120 | 55 |
| Initech | 3 | 3 | 940 | 64 |
Three accounts are below 60. Acme Retail has 12 seats and 4 active users — a renewal risk that shows up weeks before the renewal date.
Counting devices is not knowing people
Three problems that make user reports untrustworthy, and how TapCub handles them.
"Our MAU is inflated"
A customer on a phone, a laptop and a mini-program is three users in a device-based tool — and one of them never "returns".
Identity resolution merges them on login and keeps earlier anonymous visits. Retention and LTV are per person.
"Segments are stale by the time we use them"
Exported lists age the moment they are downloaded. The campaign goes to people who already converted.
Segments are rules, not lists. They re-evaluate as events arrive and can be used directly in chat, funnels and exports.
"We sell to companies, not people"
Consumer tools cannot show that 4 of 12 seats are active. The renewal conversation starts without data.
Accounts group profiles under a company with seats, activity, events and a health score — the B2B view on the same data.
Everything about one person, in order
A profile is a timeline of events across every source, the properties you set, the devices that were merged and the segments the person belongs to. Lena is one paying customer among 48,213 visitors.
- Timeline across web, app, mini-program and server
- Properties from the SDK, the server or a CSV import
- Segments and account membership on the same card
Example scenario: A support agent opens Lena’s profile from a chat: three orders, Pro plan, last seen on the pricing page two minutes ago. The answer about upgrading is short because the context is already there.
Lena M.
Berlin · 3 devices · first seen Jun 2026
14
Sessions
$412
LTV
3
Orders
2 min
Last seen
Properties
- planpro
- orders3
- cityBerlin
- first_channelnewsletter
Segments
Timeline
AllOrders- Viewed /pricingToday · 2 min ago
- Repeat purchase · $128Sep 28 · push
- Plan changed to ProSep 12 · billing
- Ordered in the mini-program · $96Sep 9 · shared link
- Read /blog/linen-careSep 3 · Newsletter
Website, mini-program and app, joined on login
Before login a visitor is a device. When they sign in, the user ID you send merges the devices into one profile — including the anonymous visits before login. Funnels, retention and LTV then follow the person.
- Send one call with your user ID; TapCub does the merge
- Anonymous history is kept, not discarded
- Works across web, iOS, Android, HarmonyOS, mini-programs and server events
Example scenario: Lena reads a blog post on her laptop, orders in the mini-program a week later, then installs the app. Without identity resolution that is three users, zero retention. With it, one profile and a 3-order customer.
Before login · 2 devices
Laptop · Chrome
example.com
- Read /blog/linen-care
- Viewed /pricing twice
- Came from Newsletter
Phone · mini-program
- Opened from a shared card
- Ordered · $96
- Installed the app
After login · 1 person
Lena M.
One person · 3 devices · 14 sessions
3
Orders
$412
LTV
W4 · 54%
In cohort
- Anonymous visits before login are kept
- First touch stays Newsletter
- Retention counts her once
Traits you can filter, group and compare on
Properties live on the person: plan, orders, city, first channel, anything you set. They come from the SDK, a server call or a CSV import, and every report can break down by them.
- Set from the browser, the app, the server or an import
- Typed: string, number, date, boolean, list
- Device, geo and first-touch properties are filled automatically
Example scenario: Breaking down the checkout funnel by plan shows Free users convert at 14% and Pro at 31% — the pricing page, not the checkout, is the next thing to look at.
Payers by plan
Visitors by device
- Mobile54%
- Desktop31%
- Tablet15%
Properties on this project
| Property | Type | Example | Set by |
|---|---|---|---|
| plan | string | pro | Server |
| orders | number | 3 | Server |
| city | string | Berlin | Auto |
| first_channel | string | newsletter | Auto |
| newsletter_opt_in | boolean | true | Web SDK |
Rules, not lists
A segment is a set of conditions on events and properties. It re-evaluates as data arrives, so the "high value, going quiet" group is correct this hour, not last month. Use it in any report, as a chat audience, or export it.
- Conditions on properties, events, counts and time windows
- Live size and breakdown while you edit
- RFM segments pre-built for paying customers
Example scenario: Marketing builds Orders ≥ 3 AND LTV ≥ $300 AND no visit in 21 days: 1,284 people. The segment feeds a win-back email and a proactive chat invite on return.
High value · going quiet
1,284 now1,284
People
$386
Avg. LTV
38%
Newsletter first-touch
RFM · paying customers
The B2B view: companies, seats, health
Group profiles under an account and the same events become seat activity, usage depth and a health score per company. Renewal risk shows up as a falling score weeks before the renewal call.
- Account = profiles sharing a company property or domain
- Health score weights activity, breadth and recency
- Plan, seats and active users on one row
Example scenario: Acme Retail has 12 seats, 4 active in 30 days, health 42. Customer success gets the alert on Monday, not at the renewal meeting in November.
Accounts
AllHealth < 60| Account | Plan | Seats | Active 30 d | Events | Health |
|---|---|---|---|---|---|
| ACAcme Retail | VIP | 12 | 4 | 1,920 | 42 |
| NONorthwind | Pro | 8 | 6 | 3,410 | 58 |
| BLBluebird Co. | Pro | 5 | 5 | 2,860 | 71 |
| GLGlobex | VIP | 20 | 9 | 5,120 | 55 |
| INInitech | Pro | 3 | 3 | 940 | 64 |
Accounts
184
Health < 60
31
Seats active
61%
Two groups, one chart
Put any two segments side by side on a funnel or a retention curve. The difference column is where the insight is: Newsletter first-touch visitors reach checkout at 71% of cart adds versus 44% for everyone else.
- Any two segments on any model
- Difference per step, highlighted
- Save the comparison to a dashboard
Example scenario: Comparing Newsletter first-touch with all visitors: the Newsletter group pays at 25% of product views versus 21% — the channel brings people who already trust the brand.
Checkout funnel · segment vs all
| Step | All visitors | Newsletter | Difference |
|---|---|---|---|
| Viewed product | 100% | 100% | — |
| Added to cart | 52% | 58% | +6 pp |
| Started checkout | 28% | 41% | +13 pp |
| Paid | 21% | 25% | +4 pp |
Retention · weekly
NewsletterAll visitorsProfiles without the compliance headache
User analytics is where privacy law bites. TapCub is cookieless by default, hashes identifiers, honors deletion requests and keeps your data retention explicit — Free 6 months, Pro 12, VIP 24 or more.
Cookieless by default
No consent banner needed for analytics in most jurisdictions. Identity comes from your user ID, not a third-party cookie.
Hashed identifiers
User IDs and emails are hashed before storage. You can still find a person by the ID you know; nobody else can.
Deletion and export
Delete or export one person’s data from the profile or the API. Requests complete within 30 days, usually within hours.
Three teams, three segments
Example scenarios built on the sample data above.
Win back the quiet champions
Repeat buyers went silent and nobody noticed until the quarter closed.
- Segment: orders ≥ 3, LTV ≥ $300, no visit in 21 days
- Breakdown by first channel: 38% Newsletter
- Proactive chat invite when they return
Result: 1,284 people reached; 212 orders in the following month from a segment that would otherwise have been "churn".
Catch renewal risk early
Accounts churned at renewal with no warning in the usage data anyone looked at.
- Account health score per company
- Alert when health < 60 for 14 days
- Seat activity on the same row as plan
Result: Customer success contacts 31 accounts in September; 24 are active again before renewal.
One customer across three surfaces
A shopper on the site, the mini-program and the app looked like three new users every quarter.
- Identity resolution on login
- First touch preserved from the original Newsletter visit
- Retention counted per person
Result: MAU corrected down by 23% — and LTV per real customer up by 41%, which changes the acquisition budget.
User analytics questions
Still have a question?
Chat with the team behind TapCub — we usually reply within a few hours on business days.
How does identity resolution work?
Call identify with your user ID when someone logs in. TapCub merges that device with the profile and keeps the anonymous visits that happened before login. Works across web, app, mini-program and server events.
Do segments update automatically?
Yes. A segment is a rule set, re-evaluated as events arrive. The sample segment of 1,284 people is marked "updated hourly"; you can also evaluate it on demand.
Can I import properties from my CRM or billing system?
Yes — via the server SDK, the API or a CSV import keyed on your user ID. Plan, MRR, renewal date and owner are common imports.
What is the account health score?
A weighted index per account combining activity in the last 30 days, breadth of features used, seat utilization and recency. You can adjust the weights; the default puts most weight on recency and seat activity.
Is personal data stored in plain text?
User IDs and emails are hashed before storage. Free-text properties are stored as you send them, so avoid sending sensitive data as property values. See security.
How long are profiles kept?
Event history follows your plan’s retention: 6 months on Free, 12 on Pro, 24 or more on VIP. Profiles and properties are kept while the account is active. See pricing.