Consent and privacy
What is collected
By default, the SDKs send:
- the events and properties you send, and the automatic events;
- the platform, app version, device type and model, OS, browser, locale, time zone and screen size;
- on the web, the page URL, path, title and referrer, the campaign parameters and the user agent.
From the request, Rabolic adds the country, region and city.
What is never collected
- IP addresses. Ingest uses the IP address to look up the country, region and city, to check the project's internal-traffic ranges and to count per-IP rate limits (a counter that expires within 90 seconds). Then it drops it. It is never stored with events.
- Advertising ids (IDFA, GAID), and on Android the Android id.
- Form field values and the clipboard.
- Precise location.
- Device fingerprints.
Events sent with a secret key get no location lookup.
Location
Locations come from DB-IP's IP to City Lite database (CC BY 4.0), which runs on Rabolic's own servers. The IP address isn't sent to anyone.
Consent
Every SDK has three consent states:
| State | What the SDK does |
|---|---|
granted (default) | Tracks and sends normally |
pending | Keeps events in memory only and sends nothing. On the web, it also writes no cookie and nothing to storage |
denied | Drops everything and clears the queue. On the web, it also removes the cookie and stored ids |
Start in pending until your consent banner answers, then call setConsent('granted') or setConsent('denied'). optIn() and optOut() are short for the same.
rabolic.init({ projectKey: 'rb_pub_…', consent: 'pending' })
rabolic.setConsent('granted')
Cookieless mode (web)
rabolic.init({ projectKey: 'rb_pub_…', persistence: 'memory' })
With persistence: 'memory', the web SDK keeps the anonymous id and session in memory only, for one page lifetime. It writes no cookie and nothing to localStorage. Each page load is a new visitor, so visitor and session counts read higher than they are.
Sensitive properties
Rabolic removes property keys named like secrets (password, card_number, cvv, iban, ssn and similar) without rejecting the event. Add your own in Project settings → Privacy & data → Sensitive property blocking. See Events.
Privacy requests
Owners and admins can export or delete one person's data:
- in Project settings → Privacy & data → Data subject requests: find the person by user id, email or anonymous id, then Export data or Delete person;
- or from the ⋯ menu on the person's page in Users.
The export is a JSON file of the person's profile, identities and events. Deletion removes their profile, identities, events and transactions, including people merged into them. Both work even while the organization is read-only. Backups keep deleted data until they expire.
Where data is stored
Rabolic runs in one EU region: Germany. Each project's Privacy & data settings show it ("EU — Germany") with the plan's retention. See Data retention.
Revenue and attribution
Where Rabolic revenue comes from (Dodo Payments webhooks or your server with a secret key), the one-revenue-source rule, currency conversion, linking payments to people, and first- and last-touch attribution.
Data retention
How long Rabolic keeps events, sessions, transactions and people on each plan (12, 24 or 36 months), what happens on a plan change, and when data is deleted.