Privacy & data
OnRamp is designed to be privacy-respecting by default. This page explains what data is collected, where it is stored, and what you need to disclose to your users.
What OnRamp collects
Automatically collected
| Data | Purpose |
|---|---|
Event name (step_name) | Funnel and conversion tracking |
Timestamp (server_ts) | Time-series charts |
| Platform (iOS / Android / Web) | Breakdown filters |
| OS version | Segment analysis |
| App version | Regression detection |
| Device type | Segment analysis |
| Country, region and city | Geographic breakdown |
| Session ID | Grouping events into sessions |
| Daily anonymous ID | Grouping anonymous activity within one UTC day |
IP addresses and user agents are used only in-memory to derive the daily anonymous ID and approximate country, region, and city, then discarded. They are never stored in analytics data. When a known crawler is detected, OnRamp retains only its classified name (for example, Googlebot or OpenAI), category, requested page, and timestamp in a separate crawler report; the raw user agent is still discarded and crawler activity is excluded from people and funnel analytics.
What you control
Properties attached via OnRamp.step() are entirely under your control. You choose what to include. Do not include PII (names, emails, phone numbers, government IDs) in properties.
Anonymous IDs
Web SDKs do not write an analytics ID, session ID, cookie, localStorage, or sessionStorage entry. The ingestion service derives a non-reversible pseudonymous ID from the request IP address and user agent with a secret that rotates every UTC day. The raw values are not written to analytics storage and the ID cannot be linked across days.
Mobile SDK storage is platform-specific and has separate disclosure requirements.
Pseudonymous, not anonymous
Anonymous IDs are pseudonymous identifiers, not truly anonymous ones. Under GDPR, a persistent identifier that can single out a specific device or user counts as personal data, even if you never know their name. OnRamp is a data processor - you, as the developer, are the data controller responsible for how these identifiers are used and retained.
In practice this means you should disclose OnRamp in your privacy policy and honour applicable data-subject requests.
ID rotation and retention
Web anonymous IDs rotate every UTC day. Server-side sessions expire after 30 minutes of inactivity, so a reload or a new tab can continue a short session without browser storage.
When the anonymous ID changes
- UTC midnight is reached
- The session has been inactive for 30 minutes
No browser storage for anonymous web analytics
OnRamp's web SDKs use no HTTP cookies and write no analytics data to browser storage. They do not use a persistent browser identifier or cross-site tracking.
Do you need a consent banner?
The ePrivacy rules apply to client-side storage. Since anonymous web tracking does not access client-side storage, it is designed for the no-storage analytics exemption. identify() is different: it sends the traits you provide (such as email or account ID), which can identify a person. You, as controller, must establish the appropriate lawful basis and provide any required notice or consent before calling it.
IP addresses and user agents remain personal data under GDPR even when promptly transformed. You still need a privacy notice, a lawful basis for analytics, processor terms, and an appropriate process for data-subject requests.
This is not legal advice
Regulations vary by jurisdiction and change over time. For specific compliance questions, consult a qualified privacy lawyer. This guidance reflects the regulatory landscape as of mid-2026.
GDPR considerations
OnRamp processes event data on your behalf. Under GDPR:
- You are the Data Controller - you decide what data to collect and why.
- OnRamp is the Data Processor - we process it only as you instruct via the SDK.
A Data Processing Agreement (DPA) is available on request at hello@getonramp.dev.
Right to erasure
If a user requests deletion of their data, you can submit a deletion request by emailing hello@getonramp.dev with the anonymous ID. We will delete all events associated with that ID within 30 days.
Data storage
| Data type | Storage | Location |
|---|---|---|
| Events (raw) | ClickHouse | EU |
| Session metadata | PostgreSQL | EU |
| Account data | PostgreSQL | EU |
No data is replicated outside the EU. No data is shared with third parties except sub-processors (hosting, email delivery).
Data retention
Raw event data is retained for the lifetime of your account, plus 90 days after account closure. You can request earlier deletion at any time.
What to put in your privacy policy
If you use OnRamp in your app, add a clause similar to:
We use OnRamp to collect anonymised usage analytics including the features you use and the steps you complete in our onboarding flow. This data is associated with a random device identifier, not your name or email address. It is stored on EU-based servers and retained for the duration of your account.
Contact hello@getonramp.dev if you need a completed privacy addendum for your own privacy policy.
