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

DataPurpose
Event name (step_name)Funnel and conversion tracking
Timestamp (server_ts)Time-series charts
Platform (iOS / Android / Web)Breakdown filters
OS versionSegment analysis
App versionRegression detection
Device typeSegment analysis
Country, region and cityGeographic breakdown
Session IDGrouping events into sessions
Daily anonymous IDGrouping 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 typeStorageLocation
Events (raw)ClickHouseEU
Session metadataPostgreSQLEU
Account dataPostgreSQLEU

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.