Versione italiana

Verona Bus — Privacy Policy

In force since 22 July 2020. Last updated on 23 October 2026.

Verona Bus is an app that shows public transport timetables, stops and real time information for the Verona area. This page explains what data the app processes, why, and what you can do about it. It is the information notice required by Articles 13 and 14 of the GDPR (Regulation (EU) 2016/679).

1. Who is responsible

The controller is Alberto Fanini, a private individual who develops and runs Verona Bus, reachable at veronabus@gmail.com for anything concerning this notice or the data described in it.

2. The short version

3. What is processed, why, and on what legal basis

3.1 Using the app: searches, stops, screens

When you look up a stop, open a timetable or move between screens, the app sends my servers the stop involved, the action performed, the screen you came from and the one you went to, plus the app version, the operating system and its version, the language and the country of your device.

Purpose: understanding which parts of the Service are used, sizing the infrastructure and deciding what to fix or build next. Legal basis: legitimate interest in operating and improving the Service (Art. 6(1)(f) GDPR). These records carry no user identifier: they cannot be grouped into the history of a single person.

3.2 Location: nearby stops and journey planning

If you grant the location permission, the app reads the position of your device to show the stops around you and to plan journeys from where you are. The coordinates of the origin and destination of a journey you ask for are sent to my servers to compute the itinerary.

Purpose: providing the function you have explicitly asked for. Legal basis: legitimate interest in delivering the requested feature (Art. 6(1)(f) GDPR); the permission is asked by the operating system and you can withdraw it at any time from the system settings, at the cost of those features.

3.3 Navigator, stop alarm and vehicle positions (“Contribute to delay data”)

When you use the step-by-step navigator or the stop alarm (“I'm on this bus”), the app sends my servers the GPS position of your device and the stop events detected on board (boarding, passing, alighting), together with the route, the trip and the scheduled time. Each sample carries coordinates, accuracy, speed, heading and the time of the fix.

Purpose: estimating the real delays of vehicles from the movement of the people riding them, and showing other users where the vehicle they are waiting for is. Legal basis: legitimate interest in improving the Service and its accuracy (Art. 6(1)(f) GDPR). I have weighed this against your interests: only the vehicle's position leaves my servers, no identifier connects the data to you or to your other journeys, samples are deleted after 14 days, and the feature can be switched off in one tap.

What other users see. While you are on board with the navigator or the stop alarm, the vehicle position derived from your phone may be shown to users waiting for that trip, marked as the position of a passenger on board. It appears only after your phone's movement has matched that trip (route, bus-like speed, direction, time) and disappears two minutes after the last update. Others see the vehicle's position, never anything about you.

How the data is kept apart from you. The samples of a journey are grouped by a random identifier generated anew for every journey, not reused across journeys and not linked to any account. To show the position to others the app also creates a contributor key: a random value used only for this and separate from every other identifier in the app. My servers keep only a keyed hash of it, with the number of positions accepted and rejected by the checks: it is used to stop showing positions that are consistently wrong, and is deleted after 12 months without journeys. To tell you how many people waiting your position helped, the app of the person waiting sends a random identifier generated at every start and never stored, used only for counting. A per-installation token issued by Firebase App Check is used to verify that the data comes from the genuine app and to rate-limit abusive uploads, and is never stored next to a position. That said, I do not claim this data is anonymous: a sequence of positions is in principle capable of singling someone out, which is exactly why it is deleted after 14 days.

“Are you on the bus?” suggestion. If you open a departure shortly before it leaves, the app may offer the stop alarm right after. The decision is made on the phone and sends no data. It can be turned off in More → Stop alarm suggestions.

“Are you on this bus?” suggestion. When the app suggests the bus you are riding, it sends the positions used for the suggestion, to check that it was right. Only with Help improve delay data on; deleted after 14 days.

Right to object: turn off More → Contribute to delay data in the app (Art. 21 GDPR): the navigator and the stop alarm keep working, and your position is neither sent nor shown to others.

3.4 Push notifications

The app can notify you about service changes and news. Notifications are sent to a single topic that all installations subscribe to, so I do not hold a list of device tokens and cannot address, count or profile individual devices. Firebase Cloud Messaging handles delivery and assigns your installation a token for that purpose.

Purpose: informing users about disruptions and news. Legal basis: legitimate interest in informing users (Art. 6(1)(f) GDPR). You can disable notifications from the app or from the system settings.

3.5 Advertising

The app is free and supported by advertising served through Google AdMob. Depending on your choices, AdMob and its partners may use the advertising identifier of your device — the Android Advertising ID on Android, the IDFA on iOS — along with technical data about the device and the approximate location derived from the IP address.

Legal basis: your consent (Art. 6(1)(a) GDPR and Art. 122 of the Italian Privacy Code). Consent is collected in the app through Google's consent panel, which implements the IAB Transparency & Consent Framework and lists every partner individually; on iOS, Apple's App Tracking Transparency prompt is shown first and, if you decline it, the IDFA is not available at all regardless of any other choice. Non-personalised ads are shown when consent is refused.

Withdrawing consent: reopen the panel at any time from More → Announcements → Customize ads, on Android and on iOS alike, and change or withdraw any of the choices you made. On Android you can also delete or reset the advertising ID from the Google settings of the device; on iOS you can revoke tracking from Settings → Privacy & Security → Tracking, and with tracking denied the IDFA is unavailable and ads are non-personalised.

3.6 Crash reports and product analytics

Firebase Crashlytics collects technical information when the app crashes or misbehaves: device model, operating system version, app version and state, and the stack trace of the error. Firebase Analytics measures aggregate use of the app — screens opened, features used — and is currently active for all users.

Purpose: keeping the app working and understanding how it is used. Legal basis: legitimate interest in the security, stability and improvement of the Service (Art. 6(1)(f) GDPR). Neither is used to build advertising profiles or to identify you by name.

3.7 Server logs

My servers record, for every request, the IP address, the time, the endpoint called and the technical headers sent by the app. Firebase and AdMob keep their own logs under their own policies.

Purpose: security, abuse prevention and diagnosing faults. Legal basis: legitimate interest in the security of the Service (Art. 6(1)(f) GDPR). These logs are kept for the time needed for those purposes and are not merged with the data described in the sections above.

4. Retention

DataRetention
Raw navigation positions and stop events (3.3)Automatically deleted after 14 days
Vehicle position shown to other users (3.3)Held in memory only, gone 2 minutes after the last update
Contributor key hash and check counts (3.3)Deleted after 12 months without journeys
Aggregated per-trip delays computed from themKept long term; contain no individual positions
Usage statistics (3.1)Kept for statistical purposes; carry no user identifier
Journey planning requests (3.2)Not retained beyond serving the request and the server logs
Server logs (3.7)Kept for the time needed for security and diagnostics
Advertising, crash and analytics dataRetention set by Google; see the policies linked below

5. Who else sees the data

I do not sell data and I do not disclose it to third parties beyond what is described here. The Service relies on these providers:

Timetable and real time data comes from ATV Azienda Trasporti Verona Srl and from the systems that publish it. That is a flow of data towards the app: no personal data of yours is sent to the transport operator.

6. Transfers outside the European Union

My own servers are located in the European Union. The Google and Apple services listed above may transfer data to the United States and to other countries outside the EU, relying on the European Commission's adequacy decision for the EU–US Data Privacy Framework and on standard contractual clauses. The details are in their respective policies.

7. Your rights

Under Articles 15 to 22 of the GDPR you have the right to obtain access to your personal data, to have it rectified or erased, to have its processing restricted, to receive it in a portable format and to object to processing based on legitimate interest — including, specifically, the navigation telemetry of section 3.3, which you can stop yourself from within the app.

Since none of the data described here is tied to an account, in most cases I have no way of finding “your” records: honestly, a request for access or erasure of usage statistics will get the answer that there is nothing identifiable to give you. For the data held by Google, use the controls Google provides.

To exercise your rights write to veronabus@gmail.com. You also have the right to lodge a complaint with a supervisory authority; in Italy that is the Garante per la protezione dei dati personali.

8. Automated decision-making

There is no automated decision-making producing legal effects concerning you, and no profiling of individuals. Delay estimates are computed from the aggregate of many sessions and describe buses, not people.

9. Children

The Service is not directed at children and does not knowingly collect their data. Under Italian law the age for consenting to information society services on one's own is 14. Since the app has no accounts, it does not ask for age; if you believe a child has provided personal data through the app, write to me and I will delete what can be identified.

10. Security

Traffic between the app and my servers travels over HTTPS. Data is stored on servers I administer, with access restricted to me. No method of transmission or storage is completely secure, and I cannot guarantee absolute security.

11. Links to other sites

The app and this page may link to sites I do not operate. I have no control over their content or their privacy practices; read their policies.

12. Changes to this policy

I may update this notice. Changes are published on this page with a new “last updated” date. Substantial changes affecting a processing based on your consent will be brought to your attention within the app.

13. Contact

Questions, requests or suggestions: veronabus@gmail.com.