Rovenue SDKBeta
Guides

Customers in the dashboard

How the Customers page names and finds a customer, what an unclaimed buyer is, and where merges, merged credits and acquisition show up.

The Customers page in the dashboard lists every subscriber of the project. One customer can collect several ids over time: a device's rovenueId, the app user id you pass to identify(), a store purchase it was first found by, and the ids of records merged into it. The dashboard shows one of them and finds the customer by any of them.

Customer ID

Every customer has one visible id, the Customer ID. It never changes, whatever device or account the customer moves to. It is the column of that name in the list, the id next to the name on the customer page (with a copy button), and Copy Customer ID in a row's menu. Search for it to open the customer.

A customer is named, in this order:

  1. its app user id;
  2. else its $email attribute;
  3. else Web buyer or Store buyer for an unclaimed buyer;
  4. else Anonymous.

The device rovenueId (rov_…), a server-minted srv_… id and store identifiers such as stripe:<customer id> are never shown. They still work with the server-side API and in search.

Unclaimed buyers

An unclaimed buyer is a customer Rovenue recorded on its own, before any app was tied to the purchase:

  • Web buyer: someone who paid through a web funnel checkout and has not opened the app yet.
  • Store buyer: an App Store or Google Play purchase whose notification arrived before the app posted the receipt (see how store notifications find the user).

They carry an Unclaimed badge in the list and on the customer page. To list only them, open the filter and check Unclaimed under Buyers.

A buyer is claimed when the purchase reaches the app: the app redeems the funnel claim, or posts the store receipt. The buyer is then merged into the app's customer and leaves the list. You can also merge one from your backend with POST /v1/subscribers/transfer, with the buyer as the source. An unclaimed buyer is never the one kept: naming it as the target answers 409 UNCLAIMED_BUYER_TARGET.

Search by an earlier id

The search box matches what a row shows: part of an app user id, a Customer ID, an email or a country. It also matches, exactly (never by part), an id the row does not show:

  • the device rovenueId, or a buyer's srv_… id;
  • a store identifier, such as stripe:<customer id>;
  • the Customer ID of a record that was merged into this customer.

A customer found only through such an id is marked matched another ID. The matched value itself is not shown. The command palette works the same way and also takes a Google Play order id (GPA.…); its matches read Matched another ID.

Opening a merged record's page, for example from an old link, shows the customer it was merged into, and the address changes to that customer's.

Merges in Activity

Every merge into a customer is an entry in its Activity tab, next to its purchases. The entry names the merged record by its Customer ID, and by its email when a buyer had one:

EntryWhen
Web purchase from date linked — customer id merged into this one (claim link, deferred or email)The app claimed a web funnel purchase. The last part says how the install found it.
Store purchase linked — customer id mergedThe app posted a receipt for a purchase Rovenue had recorded on a store buyer.
Customer id merged into this oneAny other merge: identify() into an existing app user, a server-side transfer, a merge made with Rovi, the dashboard assistant.

A customer with many merges shows the latest ones, with a Showing the latest … merges note. Each merge is also an audit-log entry and a subscriber.merged webhook.

Credits after a merge

A merge moves the merged record's virtual-currency balances to the customer. In the Credits tab:

  • the two rows of that move carry the note Moved on merge. They have no Sandbox chip: a moved balance can hold both environments.
  • rows recorded on the merged record before the merge stay in the history with a From merged customer chip. Its tooltip reads "Recorded on merged customer id. The balance is that customer's at the time.": the Balance column on those rows is the merged record's, not this customer's.

Acquisition card

The customer page shows an Acquisition card above the tabs: how the customer was acquired.

RowWhat it shows
NetworkThe ad network, with Paid or Organic.
SourceWhere the attribution came from: Advenue, Meta install referrer, Google Play install referrer, Apple Search Ads, AppsFlyer, Adjust or Web funnel.
Campaign, Ad set, AdEach level's name, with its id beside it.
RecordedWhen the attribution was recorded.
First funnel shownThe first funnel the customer saw, or No funnel shown yet.

A customer with no attribution reads "No acquisition recorded for this customer.". While analytics are not reachable, the first funnel reads Not available: analytics are not reachable, and the rest of the card still loads. For where attribution comes from, see Acquisition targeting and Advenue.

Money on the customer page (LTV, MRR, purchase prices) is in the project's display currency.

On this page