Privacy Policy
Train Radar shows live train positions across Europe. We designed it to work without accounts and without collecting personal profiles. This policy explains, specifically and honestly, what data the app processes, why, where it is stored, and what your rights are under the EU General Data Protection Regulation (GDPR) and the UK GDPR.
1. Who is responsible
The data controller for Train Radar is the app's publisher, contactable at support@trainradar.co. Full legal details are on the Impressum page.
2. The short version
- No account, no registration, no email address, no name.
- The app identifies your device with a random anonymous identifier — we cannot link it to you.
- The app never asks for your location and has no access to it. The map shows trains, not you.
- We use Firebase Analytics and Crashlytics (Google) for usage statistics and crash reports, keep our own copy of the app's usage events on our server, and use RevenueCat for subscription status and, on iOS, Apple's AdServices for anonymous install attribution.
- We do not sell data. The iOS app has no ads and no advertising trackers. The free version of the Android app shows ads from Google AdMob (§3.10); Train Radar Pro removes them.
- This website sets no cookies and loads no third-party resources.
3. What the app processes, and why
3.1 Anonymous device identifier
On first launch the app generates a random identifier for your device. It is not derived from your hardware, phone number or any Apple or Google account and is not shared across apps. We use it to store your followed trains and your subscription status on our backend, and to count how the app is used (§3.9). Legal basis: performance of the service you request (Art. 6(1)(b) GDPR).
3.2 Followed trains and push tokens
When you follow a train, we store on our server: your anonymous device identifier, a push token (an Apple push token on iOS, a Firebase Cloud Messaging token on Android), the followed train's identifier, and — while a Live Activity (iOS) or a live notification (Android) is running — its push token. This is the only way to deliver arrival, platform and disruption notifications and to keep the Live Activity or live notification up to date. These records are deleted when you unfollow, when the journey ends, or when Apple or Google reports the token invalid. Legal basis: performance of the service (Art. 6(1)(b) GDPR).
3.3 Subscriptions (RevenueCat, Apple and Google Play)
Purchases are made through Apple (iOS) or Google Play (Android). We never see your payment details, Apple ID, Google account or invoice address — Apple and Google process the payment under their own privacy policies. To know whether your device has an active Train Radar subscription, we use RevenueCat (RevenueCat, Inc., USA) as a processor: it receives the anonymous app-user identifier and the store's purchase receipt or token, and tells our backend whether the entitlement is active and until when. RevenueCat's privacy policy: revenuecat.com/privacy. Legal basis: performance of contract (Art. 6(1)(b) GDPR).
3.4 Analytics and crash reports (Firebase)
The app uses Firebase Analytics and Crashlytics (Google Ireland Ltd. / Google LLC) to understand which features are used and to fix crashes. Events are aggregate and feature-level (for example "train detail opened", with the train's country and type); they never contain location data (the app has none), the identity of the trains you open or follow, or any account data. Crash reports contain device model, OS version and stack traces. Google acts as our processor under the Google Ads Data Processing Terms (business.safety.google/adsprocessorterms); transfers outside the EU/UK are covered by the EU Standard Contractual Clauses and the EU–US Data Privacy Framework. Legal basis: legitimate interest in improving and stabilising the app (Art. 6(1)(f) GDPR).
3.5 Apple Search Ads attribution (AdServices, iOS only)
To know whether an install came from an Apple Search Ads campaign, the app asks Apple's AdServices framework for an attribution token and our backend redeems it with Apple once. The result is campaign-level only (for example "install came from campaign X in country Y") and is keyed to the anonymous device identifier — it does not identify you and involves no cross-app tracking, so the app does not show an App Tracking Transparency prompt. Legal basis: legitimate interest in measuring our own marketing (Art. 6(1)(f) GDPR).
3.6 Server logs and security
Like every web service, our API briefly processes your IP address to deliver responses and to protect the service (rate limiting, abuse prevention). Requests pass through Cloudflare (Cloudflare, Inc.) as a reverse proxy/CDN; our backend is hosted by Hetzner Online GmbH in Falkenstein, Germany (EU). IP addresses are not stored in our application database and are not linked to the anonymous device identifier. Legal basis: legitimate interest in operating the service securely (Art. 6(1)(f) GDPR).
3.7 Train data (not personal data)
Positions, delays and journey histories of trains are public-transport operating data from official railway sources, not personal data. Journey history used by the replay feature is kept for 30 days and then deleted automatically. It describes trains, never users.
3.8 Search terms
When you search in the app, the text you type is sent to our server to find matching trains and stations. To learn what people look for and what our search fails to find, the server keeps a daily tally of the search text (lowercased, at most 64 characters), how many results it returned, and the country the request came from as reported by Cloudflare (country level only). The tally is not linked to your anonymous device identifier, your IP address or any other identifier, and it is kept so that we can compare what is searched for over time. Please do not type personal information into the search box. Legal basis: legitimate interest in improving the search (Art. 6(1)(f) GDPR).
From version 1.11, the app attaches a random one-time identifier to each search request, and the app's usage events for that search carry the same identifier, so we can see whether a search led to a result being opened, and which one. The per-search record on our server (the one-time identifier, the search text, the result counts and the country) contains no device identifier and is kept. Because the usage events for that search are stored with your anonymous device identifier (§3.9), a search can be associated with that identifier until the identifier is removed from those events after 180 days. Legal basis: legitimate interest in improving the search (Art. 6(1)(f) GDPR).
3.9 Usage events on our own server
The same usage events the app gives Firebase are also sent to our own server and stored there, so we can count what the app does without depending on Google's reports. Each event is stored with your anonymous device identifier, a random identifier for the app session, the app and operating-system version, the device model and the country the request came from as reported by Cloudflare (country level only). From version 1.11, when you open a train's details, the event also records which train it was (its identifier, number and line) and where you opened it from, and the event for closing the details records how long they were open — these train identifiers go to our server only, never to Firebase. After 180 days the device identifier is removed from every event; the events are then kept without it, so they can no longer be associated with your device. Legal basis: legitimate interest in improving and stabilising the app (Art. 6(1)(f) GDPR).
3.10 Ads in the free Android app (Google AdMob)
The iOS app shows no ads. The free version of the Android app shows a banner at the bottom of the map, a banner inside the train card, and an occasional full-screen ad when you open train details; these ads are served by Google AdMob (Google Ireland Ltd. / Google LLC). Train Radar Pro removes all ads — for Pro subscribers the ads SDK is not started at all.
To serve and measure ads and to prevent fraud, Google's ads SDK processes your device's advertising ID (and app set ID), your IP address (from which Google may infer an approximate location — the app itself still has no location access), information about your device and the app, and your interactions with ads (impressions and clicks). In the EU/EEA, the UK and Switzerland we ask for your choice through Google's consent message (IAB TCF) before ads are requested; if you do not consent, Google serves non-personalised ads, which still use this data for frequency capping, fraud prevention and aggregate measurement. You can change your choice at any time in the app's Settings → Ad privacy choices, and reset or delete your advertising ID in Android's settings. Train Radar receives only aggregate ad reports from Google, never data about you. How Google uses this data: policies.google.com/technologies/partner-sites. Legal basis: your consent for personalised ads and for storing or reading information on your device where the law requires it (Art. 6(1)(a) GDPR); otherwise our legitimate interest in funding the free version (Art. 6(1)(f) GDPR).
4. Overview table
| Data | Purpose | Where | Retention |
|---|---|---|---|
| Anonymous device identifier | Follows, subscription status | Our server (Hetzner, DE) | Until you delete the app's data or request deletion |
| Push tokens (Apple, Firebase Cloud Messaging) + followed train ids | Notifications, Live Activities / live notifications | Our server (Hetzner, DE) | Deleted on unfollow, journey end, or token invalidation |
| Subscription entitlement | Unlock premium features | RevenueCat (US), our server | Life of the subscription record |
| Analytics events, crash reports | Product improvement, stability | Google Firebase | Per Firebase retention settings (max. 14 months for analytics) |
| Usage events on our server (with the anonymous device identifier; from version 1.11 also the identifiers of the trains you open) | Product improvement | Our server (Hetzner, DE) | Device identifier removed after 180 days; the events are then kept without it |
| Apple Search Ads attribution (campaign-level) | Marketing measurement | Our server (Hetzner, DE) | Kept as an aggregate campaign record |
| Search terms (daily tally with result count and country) | Improving search | Our server (Hetzner, DE) | Kept; not linked to any identifier |
| Per-search records (random one-time search identifier, search text, result counts; from app version 1.11) | Improving search: whether a search led to a result being opened | Our server (Hetzner, DE) | Kept; no device identifier in the record (linkable through the usage events until those lose the device identifier after 180 days) |
| IP address | Delivery, security | Cloudflare edge, server logs | Short-lived logs; not stored in our database |
| Advertising ID, IP address, device and app information, ad interactions (free Android app only) | Serving and measuring ads, fraud prevention | Google AdMob | Per Google's retention policies |
| Encrypted database backups | Disaster recovery | Cloudflare R2 (EU jurisdiction), encrypted | 30 days |
5. What we do not do
- No sale or rental of data, to anyone, ever.
- No location access. The app requests no location permission, contains no location code, and therefore cannot read, store or transmit where you are — neither on the device nor on our servers.
- No ads in the iOS app and none for Pro subscribers; the free Android app's ads come from Google AdMob only (§3.10), and are personalised only with your consent. No cross-app tracking by Train Radar itself.
- No profiling or automated decision-making with legal effect.
- This website uses no cookies, no analytics and no external scripts or fonts.
6. Your rights
Under the GDPR and UK GDPR you have the right of access, rectification, erasure, restriction, data portability, and the right to object to processing based on legitimate interest. Because our records are keyed only to an anonymous identifier, email us from within the app's Settings → Support (which can include your device identifier) or provide it manually so we can locate your records. Write to support@trainradar.co — we answer within one month. You also have the right to lodge a complaint with your local supervisory authority.
Deleting the app removes the identifier from your device; on request we delete every server-side record associated with it.
7. Children
Train Radar is not directed at children and processes no data that could identify a child. There is no age gate because no personal profile is created.
8. Changes
If we change what the app processes, we will update this policy at this address and update the effective date above before the change ships.
9. Contact
support@trainradar.co · Legal details: Impressum