GymTracker è disponibile su iOS, Android e web (app e Coach Portal). Le app native usano storage locale e identificativi tecnici; il sito e le versioni web usano cookie/localStorage per autenticazione Firebase, lingua e preferenze. Gli annunci (solo piano Free) richiedono un consenso separato sulle app (ATT/UMP). Firebase Analytics nella web app parte solo se lo accetti nel banner dei cookie, e lo spegni quando vuoi da «Preferenze cookie». Questa policy descrive tutte le tecnologie usate.
Archiviazione Locale sul Dispositivo
GymTracker utilizza l'archiviazione locale sul tuo dispositivo, iPhone o Android, per garantire un'esperienza fluida, rapida e funzionante anche in assenza di connessione internet. Nessuno di questi dati viene trasmesso a terze parti senza il tuo consenso.
AsyncStorage (Archiviazione persistente)
Utilizziamo AsyncStorage, la tecnologia di storage nativa di React Native, per conservare localmente sul dispositivo:
- Dati di sessione dell'utente autenticato (token di accesso, profilo utente)
- Preferenze dell'App: tema scuro/chiaro, lingua, unità di misura (kg/lbs), preferenze di notifica
- Stato dell'onboarding e completamento della configurazione iniziale
- Cache locale dei dati di allenamento per l'accesso offline
- Impostazioni di integrazione con Apple Health e Apple Watch
Questi dati sono accessibili esclusivamente dall'App GymTracker e non sono condivisi con altre applicazioni installate sul dispositivo.
Keychain iOS (Archiviazione sicura)
Per i dati sensibili legati all'autenticazione, utilizziamo il Keychain di iOS, il deposito sicuro del sistema operativo Apple, che garantisce la cifratura hardware dei dati anche in caso di accesso fisico al dispositivo:
- Token di autenticazione Firebase (ID Token, Refresh Token)
- Credenziali Google OAuth
- Dati dell'identità Apple Sign In
Il Keychain di iOS utilizza la cifratura hardware del dispositivo (Secure Enclave). I dati del Keychain sopravvivono alla disinstallazione dell'App ma vengono eliminati al logout e alla cancellazione dell'account.
Tecnologie di Tracciamento Tecnico
Le seguenti tecnologie sono strettamente necessarie al funzionamento dell'App e non richiedono il tuo consenso in quanto hanno natura puramente tecnica:
Identificatori di sessione Firebase
Firebase Authentication utilizza token JWT (JSON Web Token) a breve scadenza per gestire in modo sicuro la sessione dell'utente. Questi token contengono l'identificativo univoco dell'utente (UID) e la data di scadenza, e vengono rinnovati automaticamente senza richiedere un nuovo accesso. Non contengono dati personali aggiuntivi.
Identificatori di abbonamento RevenueCat
RevenueCat utilizza un identificativo anonimo dell'utente (App User ID) per associare il piano di abbonamento al tuo account, senza raccogliere dati personali. Questo identificativo viene generato dall'App e non è correlabile ad informazioni anagrafiche.
Identificatori dispositivo (IDFV)
L'App può utilizzare il "Identifier for Vendor" (IDFV) fornito da iOS, un identificativo anonimo specifico per il vendor (GymTracker) su quel dispositivo. L'IDFV non può essere utilizzato per identificarti su app di altri vendor e viene reimpostato alla disinstallazione dell'App.
Su gymtracker.studio e gymtracker.it (sito, web app /app, Coach Portal /coach) Firebase Auth può usare cookie/localStorage di sessione. Non usiamo pixel pubblicitari sul sito marketing. Firebase Analytics nella web app non è uno strumento tecnico: si attiva solo con il tuo consenso (sezione 3).
Tecnologie dei Servizi Terzi
I servizi di terze parti integrati nell'App potrebbero utilizzare le proprie tecnologie di identificazione per erogare correttamente i servizi:
Firebase Analytics nella web app (solo con il tuo consenso)
Nella versione web dell'app (gymtracker.studio/app) Firebase Analytics raccoglie statistiche d'uso: le pagine viste e alcuni eventi (per esempio accesso, uscita, esito di un'importazione IA), non collegati al tuo identificativo utente e senza i nomi dei tuoi programmi. Le tratta Google, come nostro responsabile del trattamento. Non è necessario al funzionamento: parte solo se scegli «Accetta» nel banner dei cookie. Se scegli «Rifiuta», premi Esc o non scegli, non viene impostato niente. Sulle app per iPhone e Android non usiamo Firebase Analytics.
- _ga (cookie, dominio gymtracker.studio): identificativo casuale del browser, generato da Google Analytics; durata 2 anni
- _ga_<ID> (cookie, dominio gymtracker.studio; <ID> è l'identificativo della nostra proprietà Analytics): stato della sessione; durata 2 anni
- firebase-installations-database (database del browser, IndexedDB): l'identificativo dell'installazione Firebase, casuale, che Analytics allega agli eventi; resta finché non cancelli i dati del sito
- Il programma di Analytics (gtag.js) si scarica da googletagmanager.com, e solo dopo il consenso
- Base giuridica: il tuo consenso (art. 122 del Codice privacy; art. 6, par. 1, lett. a GDPR)
- Revoca: in qualsiasi momento da Preferenze cookie, anche in fondo a ogni pagina del sito. La revoca ferma subito la raccolta, cancella i cookie _ga e vale anche ai caricamenti successivi
La tua scelta resta nel tuo browser, nella chiave tecnica gymtracker_analytics_consent_v1 (localStorage): contiene solo la scelta, la data e la versione di questa policy. Se la policy cambia versione, il banner te lo chiede di nuovo. La vecchia chiave gymtracker_cookie_consent_v1 registrava solo la presa visione dell'avviso sui cookie tecnici e non vale come consenso.
Durata della Conservazione
Le diverse tipologie di dati archiviati localmente hanno durate di conservazione differenti:
- Token di sessione: automaticamente rinnovati fino al logout o alla cancellazione dell'account
- Preferenze e impostazioni: conservate fino alla disinstallazione dell'App o alla cancellazione account
- Cache offline dei dati di allenamento: aggiornata ad ogni sincronizzazione, eliminata con la cancellazione account
- Dati di sessione Keychain: eliminati al logout e alla cancellazione account
- Cookie di Firebase Analytics (web app, solo con consenso): _ga e _ga_<ID> durano 2 anni e vengono cancellati alla revoca
- Scelta sui cookie: resta nel browser finché non la cambi, non cancelli i dati del sito o non cambia la versione di questa policy
La disinstallazione dell'App elimina tutti i dati salvati nell'archiviazione locale del dispositivo (AsyncStorage). I dati sincronizzati sul cloud (Firestore) rimangono disponibili fino alla cancellazione esplicita dell'account dalle impostazioni dell'App.
Come Gestire e Cancellare i Dati Locali
Hai il pieno controllo sui dati archiviati dal tuo dispositivo. Ecco le opzioni disponibili:
- Logout dall'App: elimina i token di sessione dal Keychain e reimposta la cache di autenticazione
- Cancella Account (Impostazioni → Profilo → Elimina Account): elimina definitivamente tutti i dati locali e cloud associati al tuo account
- Disinstallazione dell'App: rimuove tutti i dati locali salvati su AsyncStorage
- Preferenze cookie: riapre il banner per accettare o rifiutare le statistiche di Firebase Analytics nella web app; la revoca ha effetto subito
- Revoca accesso HealthKit (Impostazioni iOS → Privacy e Sicurezza → Salute → GymTracker): interrompe immediatamente qualsiasi accesso ai dati sanitari
La sola disinstallazione dell'App non elimina i dati sincronizzati sul cloud (Firestore). Per una cancellazione completa, usa la funzione "Elimina Account" nelle impostazioni dell'App prima di disinstallare.
Contatti
Per qualsiasi domanda relativa a questa informativa su cookie e archiviazione o al trattamento dei tuoi dati, puoi contattarci. Le richieste verranno evase entro 30 giorni dalla ricezione.
L'utilizzo di GymTracker è regolato dalla Licenza Standard dell'Utente Finale (EULA) di Apple: apple.com/legal/internet-services/itunes/dev/stdeula
GymTracker is available on iOS, Android and web (app and Coach Portal). Native apps use local storage and technical identifiers; the website and web versions use cookies/localStorage for Firebase auth, language and preferences. Ads (Free tier only) require a separate consent in the apps (ATT/UMP). Firebase Analytics in the web app starts only if you accept it in the cookie banner, and you can switch it off at any time from «Cookie preferences». This policy describes all technologies used.
Local Device Storage
GymTracker stores essential app data locally on your device, iPhone or Android, to ensure a smooth, fast experience that works even without an internet connection. None of this data is transmitted to third parties without your consent.
AsyncStorage (Persistent storage)
We use AsyncStorage, React Native's native storage technology, to store locally on your device:
- Authenticated user session data (access tokens, user profile)
- App preferences: dark/light theme, language, units of measurement (kg/lbs), notification preferences
- Onboarding completion state and initial setup configuration
- Local workout data cache for offline access
- Apple Health and Apple Watch integration settings
This data is accessible only by the GymTracker app and is not shared with other applications installed on the device.
iOS Keychain (Secure storage)
For sensitive authentication data, we use the iOS Keychain - Apple's secure system storage that provides hardware-level encryption of data even in case of physical device access:
- Firebase authentication tokens (ID Token, Refresh Token)
- Google OAuth credentials
- Apple Sign In identity data
The iOS Keychain uses the device's hardware encryption (Secure Enclave). Keychain data survives app uninstallation but is deleted on logout and account deletion.
Technical Identifiers
The following technical identifiers are strictly necessary for app operation and do not require your consent as they serve a purely technical purpose:
Firebase session identifiers
Firebase Authentication uses short-lived JWT (JSON Web Token) tokens to securely manage user sessions. These tokens contain the user's unique identifier (UID) and expiry date, and are automatically renewed without requiring a new sign-in. They contain no additional personal data.
RevenueCat subscription identifiers
RevenueCat uses an anonymous user identifier (App User ID) to link a subscription plan to your account, without collecting personal data. This identifier is generated by the app and cannot be correlated to personal information.
Device identifier (IDFV)
The app may use the "Identifier for Vendor" (IDFV) provided by iOS - an anonymous identifier specific to the vendor (GymTracker) on that device. The IDFV cannot be used to identify you across apps from other vendors and is reset when the app is uninstalled.
On gymtracker.studio and gymtracker.it (marketing site, web app /app, Coach Portal /coach), Firebase Auth may use session cookies/localStorage. We do not use ad pixels on the marketing site. Firebase Analytics in the web app is not a technical tool: it starts only with your consent (section 3).
Third-Party Services
Third-party services integrated in the app may use their own identification technologies to deliver their services correctly:
Firebase Analytics in the web app (only with your consent)
In the web version of the app (gymtracker.studio/app), Firebase Analytics collects usage statistics: pages viewed and some events (for example sign-in, sign-out, the outcome of an AI import), not linked to your user identifier and without the names of your programs. Google processes them as our processor. It is not needed for the app to work: it starts only if you choose «Accept» in the cookie banner. If you choose «Refuse», press Esc or make no choice, nothing is set. The iPhone and Android apps do not use Firebase Analytics.
- _ga (cookie, gymtracker.studio domain): a random browser identifier generated by Google Analytics; duration 2 years
- _ga_<ID> (cookie, gymtracker.studio domain; <ID> is the identifier of our Analytics property): session state; duration 2 years
- firebase-installations-database (browser database, IndexedDB): the random Firebase installation identifier that Analytics attaches to events; it stays until you clear the site's data
- The Analytics program (gtag.js) is downloaded from googletagmanager.com, and only after consent
- Legal basis: your consent (Art. 122 of the Italian Privacy Code; Art. 6(1)(a) GDPR)
- Withdrawal: at any time from Cookie preferences, also at the bottom of every page of the site. Withdrawing stops the collection at once, deletes the _ga cookies and holds on later visits too
Your choice stays in your browser, under the technical key gymtracker_analytics_consent_v1 (localStorage): it holds only the choice, the date and the version of this policy. When the policy changes version, the banner asks again. The old key gymtracker_cookie_consent_v1 only recorded that the notice about technical cookies had been seen, and is not a consent.
Retention
Different types of locally stored data have different retention periods:
- Session tokens: automatically renewed until logout or account deletion
- Preferences and settings: retained until app uninstall or account deletion
- Offline workout data cache: refreshed on each sync, deleted on account deletion
- Keychain session data: deleted on logout and account deletion
- Firebase Analytics cookies (web app, only with consent): _ga and _ga_<ID> last 2 years and are deleted on withdrawal
- Cookie choice: stays in the browser until you change it, clear the site's data or this policy changes version
Uninstalling the app removes all data stored in the local device storage (AsyncStorage). Data synced to the cloud (Firestore) remains available until explicit account deletion in the app settings.
Managing and Deleting Local Data
You have full control over data stored on your device. Here are the available options:
- Log out of the App: clears session tokens from the Keychain and resets the authentication cache
- Delete Account (Settings → Profile → Delete Account): permanently removes all local and cloud data associated with your account
- Uninstall the App: removes all local data stored in AsyncStorage
- Cookie preferences: reopens the banner to accept or refuse the Firebase Analytics statistics in the web app; withdrawal takes effect at once
- Revoke HealthKit access (iOS Settings → Privacy & Security → Health → GymTracker): immediately stops any access to health data
Simply uninstalling the App does not delete cloud-synced data (Firestore). For complete deletion, use the "Delete Account" feature in the App settings before uninstalling.
Contacts
For any questions about this Cookies & Storage Policy or data processing, please contact us. Requests will be handled within 30 days of receipt.
Use of GymTracker is governed by Apple's Standard End User License Agreement: apple.com/legal/internet-services/itunes/dev/stdeula