Privacy Policy — RiftSeeker

Last updated: 2026-11-02 — Versione italiana più in basso

This Privacy Policy explains what personal data the RiftSeeker mobile application (the "App"), the website riftseeker.lol and the RiftSeeker Discord bot collect, why, for how long, and what your rights are.

RiftSeeker is an unofficial, fan-made companion tool for the Riftbound trading card game. RiftSeeker isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games, and all associated properties are trademarks or registered trademarks of Riot Games, Inc.

If you do not agree with this Privacy Policy, please do not use the App.


1. Who is responsible (data controller)

The data controller is Giovanni Malfa ("Dreidor"), an individual developer based in Italy.

Email: admin@riftseeker.lol

This is the only contact address for privacy matters. We reply within 30 days.


2. At a glance

DataWhen it is collectedWho can see itHow long we keep it
Email, sign-in identity (Google / Facebook / Discord user id)Account creation, account linkingYou; the developerUntil you delete your account
Nickname, friend code, referral code, profile settingsOnboarding, profile editsOther users (nickname, friend code, reputation); the developerUntil you delete your account
Precise device locationOnly while the Radar is switched on (also in the background)Nobody sees the precise position: the App sends the server only a grid cell of about half a kilometre, so the precise position never leaves your phone (older versions of the App send it, and the server reduces it to a cell before saving it). Other users only see a coarse ~2.8 km grid cell and a distance rounded to 0.5 kmOverwritten every 90–180 s; deleted when you stop the Radar, at the expiry you chose (max 4 h) and in any case by a cleanup job that runs every 10 minutes. Rows not refreshed for 15 minutes are never shown
Chat messagesWhen you send themSender and recipient; the developer (technically, e.g. to handle a report)Until you or the recipient delete them, or until account deletion; deleted messages are purged after 30 days
Collection, decks, lists, match historyWhen you create themPer the visibility you choose (private / friends / public)Until you delete them (purged 30 days after deletion) or delete your account
Trades, trade feedback and reputation scoreWhen you log a trade or leave feedbackThe two parties; the aggregated score is publicUntil account deletion (feedback you gave may be kept anonymised)
Reports you fileWhen you report a user or messageThe developer (moderation)Until account deletion (kept anonymised if needed for moderation)
Push notification tokenSign-in (Android)The developer's serverRemoved at sign-out and account deletion
Purchase data (Google Play purchase token, product id, expiry, state)When you buy PremiumThe developer's server; GoogleUntil account deletion
Advertising ID (free tier only, with consent in the EEA/UK/CH)When ads are shownGoogle AdMob and its partnersPer Google's policies
Crash reports (Firebase Crashlytics)If the App crashesThe developer; GoogleUp to 90 days
Usage statistics (Google Analytics for Firebase): the events listed in section 3.17, an app instance ID, device model, Android and App version, language, countryOnly if you say yes to the question in the App, until you turn off Settings → Usage statistics (Android)The developer; Google, as our processor, also in Google Ads to measure our campaigns2 months in Google Analytics; conversions counted in Google Ads follow Google's own retention
Camera frames (card scanner)While scanningProcessed on the device only — never uploadedNot stored
Shared links (a match, a deck's stats, a deck)When you share oneAnyone who has the link, until you revoke it or it expires (7 or 30 days, or never)Until you delete your account (a revoked or expired link no longer opens)

Usage statistics are collected only with your consent (section 3.17); there are no other trackers, and we do not sell personal data.


3. What we collect and why

3.1 Account and sign-in

To use the social features you need an account. Supabase Auth (our authentication provider, hosted in the EU) stores:

If you link Discord, the RiftSeeker Discord bot can match your Discord user id to your RiftSeeker account when you use its commands (for example /referral).

The App can also be used without an account (guest mode) for the card catalog, collection and deck builder on your device only.

3.2 Profile

Your nickname (chosen by you), an automatically generated friend code and referral code, your collection/deck visibility settings, the timestamp of your acceptance of the Terms of Service, and your Premium status. Nickname, friend code, reliability score and (if you have any) public trade lists are visible to other users; the friend code is searchable so people can add you.

3.3 Location (Radar) — precise, only when you turn it on

The Radar lets you find other players nearby. It is off by default and we ask for the location permission only when you activate it, after showing you a disclosure.

While the Radar is on, the App runs a foreground service (with a persistent notification) that reads your precise device location every 90–180 seconds, also when the App is in the background. The precise position never leaves your phone: the App reduces it to a grid cell of about half a kilometre, which changes only when you clearly move out of it, and uploads only that cell to our server, together with your status, optional announcement, search radius and the session expiry you chose (1, 2 or 4 hours). The App remembers the last cell on your phone (on an iPhone it is also part of the device backup), so that the next session keeps it while you are still there; it is erased when you sign out or delete your account.

Older versions of the App still upload the precise position, and the server reduces it to a cell of the same grid before saving it: the precise position is never stored. The stored cell is private: no other user can read it, not even through the API. Other players only obtain, through a server function, your position snapped to a coarser ~2.8 km grid and your distance rounded to 0.5 km buckets ("< 500 m", "~1 km", …), limited to a radius of at most 25 km, and only while your session is active and refreshed within the last 15 minutes. Users you have blocked (or who blocked you) never see you.

You can hide yourself at any time ("Visible on map" off), stop the Radar from the App or from the notification, or revoke the permission in the system settings. Your position row is deleted when you stop, at the session expiry, and in any case by a cleanup job that runs every 10 minutes.

Radar sessions also power trade matching: while both players have the Radar on, the server compares your public trade list and wishlist with those of nearby players and notifies both sides about matching cards.

3.4 Messages (chat)

Chat messages between friends are stored on our server and delivered in real time. They are protected in transit (TLS) and by per-user access rules, but they are not end-to-end encrypted: the developer can technically access them, and does so only to handle a report you or the other party filed, or when required by law. A sender can unsend a message within 2 minutes. Deleted messages are purged 30 days after deletion; all messages are deleted with your account.

New-message push notifications only tell you who wrote (the sender's name): the text of the message is never included in the notification, so it does not appear on the lock screen or pass through the notification service. You can disable message notifications in the system settings.

3.5 Collection, decks, lists, match history (your content)

The cards you own, your decks and card lists (including notes and labels), and your match history (opponent name, result, event, location and notes you type) are stored on your device and synced to our server when you are signed in. Collection and decks are shared only according to the visibility level you set (private, friends or public); trade lists and wishlists can be made visible to nearby players for Radar matching.

3.6 Trades, feedback and reputation

When you log a trade you can record the counterpart (a friend or a free-text name), the cards exchanged, a meeting place and notes. Trade proposals to friends are shared with them. After a completed trade both parties may leave feedback (rating and optional comment); feedback and derived reliability score are shown to other users next to your nickname so that strangers can assess trust before meeting.

3.7 Friends, blocks, reports

Friend requests, friendships, block lists and the reports you submit (with the reason, your details and, for message reports, the quoted message) are stored to run the service and moderate it. Reports are visible to the developer only.

3.8 Referrals

Your referral code, the code that referred you (if any) and the number of reward weeks earned are stored to grant the referral rewards.

3.9 Purchases (Premium)

Premium is sold as an auto-renewing subscription through Google Play Billing. We receive from Google Play the purchase token, the product id and the subscription state/expiry, and we verify them with Google's servers to unlock Premium on your account. We never see your payment method or billing address; Google Play is the merchant of record.

3.10 Push notifications

On Android we store the Firebase Cloud Messaging token of your device to deliver friend requests, messages, trade updates, Radar pings, trade matches and app news. The token is deleted when you sign out and when you delete your account.

3.11 Advertising

If you are not a Premium subscriber the App shows ads served by Google AdMob. AdMob may collect a resettable advertising ID, coarse IP-based location and app/device signals to serve, measure and (with consent) personalise ads. In the EEA, the UK and Switzerland ads are shown only after you make a choice in the Google User Messaging Platform consent dialog; you can change or withdraw your choice at any time from Settings → Ad privacy options in the App.

3.12 Crash reports

The App uses Firebase Crashlytics to receive crash reports (stack trace, device model, OS version, app version, a Crashlytics installation id and basic device state). Crash reports do not include your email, messages or location. We use them only to fix bugs.

3.13 Card scanner (camera)

The scanner uses the camera to recognise cards. Frames are processed on the device and are never uploaded or stored.

3.14 App settings

Preferences such as language, theme, grid size and Radar notification options are synced to your account so they follow you across devices.

3.15 Technical logs

Our hosting provider keeps standard server logs (IP address, request time, endpoint) for security and debugging, rotated within 30 days.

From the App you can share a match, the statistics of a deck or a deck as a link (riftseeker.lol/s/…). The link holds a copy of what you share, frozen at that moment: your nickname, your deck and legend, the opponent's legend and archetype, format, result, event, date, the games and the score timeline (for the statistics of a deck, the same for each of its matches; for a deck, its name and card list). The opponent's name and deck name go in only if you choose so; your notes, the location and the opponent's account never do. Anyone who has the link can open it in the App, even without an account; signed-in users can also open your profile from a match or statistics link. The website page behind the link does not show what it holds. A link works until you revoke it (My shares) or until the expiry you chose (7 or 30 days, or never); the server counts how many times it is opened. A revoked or expired link no longer opens, but its copy stays on our server, listed only for you in My shares; all your shared links are deleted with your account.

3.17 Usage statistics (Google Analytics for Firebase)

The App asks you once whether you want to share usage statistics: after the welcome screen, after you choose your nickname, or the first time you open the version that introduced them. Nothing is collected before you answer, and nothing at all if you say no. What happens in the App in the minutes before you answer (for example your sign-up) is sent only if you say yes, and dropped otherwise. You can change your answer at any time in Settings → Usage statistics: turning it off stops the collection at once. The answer is stored on your phone and cleared when you sign out, so whoever uses the App next on that phone is asked again.

If you say yes, the Android App sends Google Analytics for Firebase these events: the first open; the sign-up, with the sign-in method (email, Google, Apple, Discord or Facebook); a scanner session saved, with how many cards and whether they went to your collection or to the Market list; a deck created, with where it came from (a new deck, a deck code, a pasted list or a copy from the cloud); a match logged, with where it was logged (the match log, the Score Board, a tournament round or the Wear OS watch); a collection import, with how many rows; and, once per phone, "activated", the first of these actions or the first card added from its detail page. Firebase adds what it records by itself: an app instance ID generated by Firebase, the start and length of each session, App updates, the device model, the Android and App version, the phone's language and the country, which Google derives from the connection (Google Analytics does not store the IP address).

We never send your advertising ID or the Android ID, your location, your cards, decks, messages or anything else you write, your name, nickname, email or account ID: the statistics are not linked to your RiftSeeker account.

Why: to understand which features are used, and to measure our advertising campaigns on Google Ads, that is how many of the people who install the App from an ad then actually use it. Ad personalisation is never enabled.

Legal basis: your consent (art. 6(1)(a) GDPR), asked in the App and withdrawable at any time from Settings → Usage statistics, with immediate effect; withdrawal does not affect the processing before it.

Who and where: Google LLC processes these data on our behalf, as our processor, also outside the EU; the transfer is covered by the Standard Contractual Clauses of the European Commission included in Google's data processing terms. When we count the "activated" event as a conversion of a campaign, Google Ads keeps it under its own terms.

How long: 2 months in Google Analytics; conversions counted in Google Ads follow Google's retention. More in Google's Privacy Policy and Privacy and Security in Firebase.

The iPhone App sends no usage statistics: it only stores your answer.



5. Who we share data with

We do not sell personal data and we do not share it for third-party marketing.


6. International transfers

Our database, authentication and storage run in the European Union. Supabase Realtime, which delivers new chat messages to the App as they arrive, currently reads them from our database through a Supabase server in the United Kingdom (London) and can pass them to your device through the Supabase server closest to it. Supabase's edge functions run in the Supabase region closest to whoever calls them: for requests from Europe usually in Europe, though not always in the EU (for example in Switzerland or the United Kingdom), and they can run outside Europe, for example in the United States, when the request comes from a service there (Google's or Discord's servers, for instance); the one behind the feedback form on riftseeker.lol always runs in Paris. These transfers are covered by the European Commission's Standard Contractual Clauses included in Supabase's data processing agreement; Switzerland and the United Kingdom also have adequacy decisions of the European Commission. Google, Meta, Discord and Cloudflare may process data in the United States and elsewhere; they rely on the EU-US Data Privacy Framework and/or the European Commission's Standard Contractual Clauses.


7. Retention

See the table in section 2. In short: account data lives as long as your account; Radar positions are deleted within minutes of stopping; deleted content (cards, decks, lists, messages, friendships, notifications) is kept as a "deleted" marker for 30 days so that your other devices can sync the deletion, then purged; crash reports are kept by Google for up to 90 days; usage statistics are kept for 2 months in Google Analytics; server backups are rotated within 30 days. When you delete your account everything linked to it is removed immediately (see section 9); feedback you left for other users and reports may be kept in anonymised form, unlinked from you.


8. Your rights

Under the GDPR you can ask us to access, rectify, erase, restrict or port your data, object to processing based on legitimate interest, and withdraw consent at any time. You can also lodge a complaint with your supervisory authority — in Italy the Garante per la protezione dei dati personali.

Most of it you can do yourself in the App:

For access or portability requests write to admin@riftseeker.lol from the email linked to your account; we provide a machine-readable export (JSON) within 30 days.


9. Deleting your account

You can permanently delete your account and all associated data directly in the App: Profile → Account → Delete account, then confirm. Deletion is immediate and cannot be undone; it removes your profile, collection, decks, lists, match history, trades, messages, friendships, blocks, notifications, Radar position, push token, referral data, purchase records, shared links and your sign-in identity.

If you can no longer open the App, request deletion at riftseeker.lol/delete-account or by email; we will verify that you control the account's email before deleting.

An active Google Play subscription is not cancelled by deleting the account: cancel it in Google Play → Payments & subscriptions → Subscriptions.


10. Children

RiftSeeker is for adults only: you must be 18 or older to create an account. The App is published on Google Play with an 18+ target audience because it includes chat between users, a Radar that shares an approximate position with nearby players and advertising. We do not knowingly collect personal data from minors; if you believe a minor has created an account, contact us and we will delete it.


11. Security

All traffic uses TLS. Access to data on the server is enforced per user with row-level security rules; sensitive operations (purchase verification, account deletion, moderation) run server-side with the user's identity verified. The precise Radar position never leaves your phone (older versions of the App send it, and the server reduces it to a cell before saving it), and the saved cells are never readable by other users. No system is perfectly secure: report any issue to the contact address above.


12. Changes

We may update this policy. The current version is always available at riftseeker.lol/privacy and inside the App (Settings → About). Material changes will be announced in the App.


13. Contact

Giovanni Malfa — admin@riftseeker.lol



Informativa sulla privacy — RiftSeeker

Ultimo aggiornamento: 02/11/2026 — In caso di discrepanze fa fede la versione inglese.

Questa informativa spiega quali dati personali raccolgono l'app RiftSeeker (l'"App"), il sito riftseeker.lol e il bot Discord di RiftSeeker, per quali finalità vengono usati, per quanto tempo vengono conservati e quali diritti puoi esercitare.

RiftSeeker è uno strumento amatoriale non ufficiale per il gioco di carte Riftbound. RiftSeeker non è approvato da Riot Games e non riflette le opinioni di Riot Games o di chiunque sia ufficialmente coinvolto nella produzione o gestione delle proprietà di Riot Games. Riot Games e tutte le proprietà associate sono marchi o marchi registrati di Riot Games, Inc.

Se non accetti questa informativa, non utilizzare l'App.

1. Titolare del trattamento

Il titolare è Giovanni Malfa ("Dreidor"), sviluppatore indipendente con sede in Italia.

Email: admin@riftseeker.lol

È l'unico recapito per le questioni relative alla privacy. Rispondiamo entro 30 giorni.

2. In sintesi

DatoQuando viene raccoltoChi può vederloConservazione
Email, identità di accesso (ID utente Google / Facebook / Discord)Creazione o collegamento dell’accountTu; lo sviluppatoreFino alla cancellazione dell'account
Nickname, codice amico, codice di invito, impostazioni del profiloPrimo accesso, modifiche al profiloAltri utenti (nickname, codice amico, reputazione); lo sviluppatoreFino alla cancellazione dell'account
Posizione precisa del dispositivoSolo con il Radar attivo (anche in background)Nessuno vede la posizione precisa: l'App invia al server solo una cella di circa mezzo chilometro, quindi la posizione precisa non lascia il telefono (le versioni precedenti dell'App la inviano, e il server la riduce a una cella prima di salvarla). Gli altri vedono solo una cella di ~2,8 km e una distanza arrotondata a 0,5 kmSovrascritta ogni 90–180 s; eliminata quando fermi il Radar, alla scadenza scelta (max 4 h) e comunque da una pulizia automatica ogni 10 minuti. Le righe non aggiornate da 15 minuti non vengono mai mostrate
Messaggi di chatAll'invioMittente e destinatario; lo sviluppatore (tecnicamente, es. per gestire una segnalazione)Fino all’eliminazione da parte tua o del destinatario, oppure alla cancellazione dell’account; i messaggi eliminati vengono rimossi dopo 30 giorni
Collezione, mazzi, liste, storico partiteAlla creazioneSecondo la visibilità che scegli (privato / amici / pubblico)Fino alla loro eliminazione (rimozione definitiva dopo 30 giorni) o alla cancellazione dell’account
Scambi, feedback e punteggio di affidabilitàQuando registri uno scambio o lasci un feedbackLe due parti; il punteggio aggregato è pubblicoFino alla cancellazione dell'account (i feedback che hai lasciato possono restare in forma anonima)
Segnalazioni che inviiQuando segnali un utente o un messaggioLo sviluppatore (moderazione)Fino alla cancellazione dell'account (in forma anonima se necessarie alla moderazione)
Token per le notifiche pushAccesso (Android)Il server dello sviluppatoreRimosso al logout e alla cancellazione dell'account
Dati di acquisto (token di acquisto Google Play, ID prodotto, scadenza, stato)Acquisto di PremiumIl server dello sviluppatore; GoogleFino alla cancellazione dell'account
ID pubblicitario (solo versione gratuita, con consenso in SEE/UK/CH)Quando vengono mostrati annunciGoogle AdMob e partnerSecondo le informative di Google
Segnalazioni di crash (Firebase Crashlytics)In caso di crashLo sviluppatore; GoogleFino a 90 giorni
Statistiche d'uso (Google Analytics for Firebase): gli eventi elencati al punto 3.17, un ID dell'istanza dell'App, modello del dispositivo, versione di Android e dell'App, lingua, paeseSolo se rispondi sì alla domanda nell'App, finché non disattivi Impostazioni → Statistiche d'uso (Android)Lo sviluppatore; Google, come nostro responsabile del trattamento, anche in Google Ads per misurare le nostre campagne2 mesi in Google Analytics; le conversioni conteggiate in Google Ads seguono i tempi di conservazione stabiliti da Google
Fotogrammi della fotocamera (scanner)Durante la scansioneElaborati solo sul dispositivo — mai caricatiNon conservati
Link condivisi (una partita, le statistiche di un mazzo, un mazzo)Quando ne condividi unoChiunque abbia il link, finché non lo revochi o scade (7 o 30 giorni, oppure mai)Fino alla cancellazione dell'account (un link revocato o scaduto non si apre più)

Raccogliamo le statistiche d'uso solo con il tuo consenso (punto 3.17); non ci sono altri strumenti di tracciamento e non vendiamo dati personali.

3. Cosa raccogliamo e perché

3.1 Account e accesso. Per le funzioni social serve un account. Supabase Auth (il nostro provider di autenticazione, ospitato nell'UE) conserva l'email (per la registrazione con email/password) e/o l'identità fornita da Google, Facebook (Meta) o Discord quando accedi o colleghi questi provider (ID utente del provider, email, nome visualizzato — mai la password), oltre ai token di sessione. Se colleghi Discord, il bot Discord di RiftSeeker può associare il tuo ID Discord al tuo account quando usi i suoi comandi (es. /referral). L'App può essere usata anche senza account (modalità ospite) per catalogo, collezione e mazzi, solo sul dispositivo.

3.2 Profilo. Nickname (scelto da te), codice amico e codice di invito generati automaticamente, impostazioni di visibilità di collezione e mazzi, data di accettazione dei Termini di servizio, stato Premium. Nickname, codice amico, punteggio di affidabilità ed eventuali liste di scambio pubbliche sono visibili agli altri utenti; il codice amico è ricercabile.

3.3 Posizione (Radar) — precisa, solo quando lo attivi. Il Radar è disattivato per impostazione predefinita; il permesso di localizzazione viene richiesto solo quando lo attivi, dopo un'informativa. Con il Radar attivo l'App esegue un servizio in primo piano (con notifica persistente) che legge la posizione precisa ogni 90–180 secondi, anche in background. La posizione precisa non lascia il telefono: l'App la riduce a una cella di circa mezzo chilometro, che cambia solo quando ti allontani sufficientemente dalla cella precedente, e invia al nostro server solo la cella, insieme a stato, annuncio facoltativo, raggio di ricerca e scadenza scelta (1, 2 o 4 ore). L'App ricorda l'ultima cella sul telefono (su iPhone viene inclusa anche nel backup del dispositivo), così la sessione successiva la mantiene se sei ancora lì; viene cancellata quando esci dall'account o lo elimini. Le versioni precedenti dell'App inviano ancora la posizione precisa, e il server la riduce a una cella della stessa griglia prima di salvarla: la posizione precisa non viene mai conservata. La cella salvata è privata: nessun altro utente può leggerla, nemmeno tramite API. Gli altri giocatori ottengono, tramite una funzione del server, solo la posizione arrotondata a una griglia più ampia, di ~2,8 km, e la distanza arrotondata a intervalli di 0,5 km ("< 500 m", "~1 km", …), entro un raggio massimo di 25 km e solo mentre la sessione è attiva e aggiornata negli ultimi 15 minuti. Gli utenti bloccati (in entrambe le direzioni) non ti vedono mai. Puoi nasconderti in qualsiasi momento disattivando “Visibile sulla mappa”, fermare il Radar dall'App o dalla notifica, o revocare il permesso nelle impostazioni di sistema. Il record con la tua posizione viene eliminata quando fermi il Radar, alla scadenza e comunque da una pulizia automatica ogni 10 minuti. Le sessioni Radar alimentano anche la ricerca di corrispondenze per gli scambi: mentre entrambi i giocatori hanno il Radar attivo, il server confronta lista scambi e liste Cercasi pubbliche con quelle dei giocatori vicini e notifica entrambi.

3.4 Messaggi (chat). I messaggi tra amici sono conservati sul nostro server e consegnati in tempo reale. Sono protetti in transito (TLS) e da regole di accesso per utente, ma non sono cifrati end-to-end: lo sviluppatore può tecnicamente accedervi, e lo fa solo per gestire una segnalazione o quando la legge lo richiede. Il mittente può annullare l'invio entro 2 minuti. I messaggi eliminati vengono rimossi dopo 30 giorni; tutti i messaggi vengono eliminati con l'account. Le notifiche push dei nuovi messaggi indicano solo chi ti ha scritto (il nome del mittente): il testo del messaggio non è mai incluso nella notifica, quindi non compare sulla schermata di blocco e non transita dal servizio di notifica. Puoi disattivare le notifiche dei messaggi nelle impostazioni di sistema.

3.5 Collezione, mazzi, liste, storico partite. Le carte che possiedi, i mazzi e le liste (con note ed etichette) e lo storico partite (nome avversario, risultato, evento, luogo e note che inserisci) sono salvati sul dispositivo e sincronizzati sul server quando hai effettuato l'accesso. Collezione e mazzi sono condivisi solo secondo il livello di visibilità che imposti; liste di scambio e liste Cercasi possono essere rese visibili ai giocatori vicini per la ricerca di corrispondenze sul Radar.

3.6 Scambi, feedback e reputazione. Registrando uno scambio puoi indicare la controparte (un amico o un nome inserito manualmente), le carte scambiate, il luogo d'incontro e note. Le proposte di scambio agli amici sono condivise con loro. Dopo uno scambio completato entrambe le parti possono lasciare un feedback (valutazione e commento facoltativo); feedback e punteggio di affidabilità derivato sono mostrati agli altri utenti accanto al nickname.

3.7 Amici, blocchi, segnalazioni. Richieste di amicizia, amicizie, liste di blocco e segnalazioni (con motivo, dettagli e, per i messaggi, il testo citato) sono conservati per far funzionare e moderare il servizio. Le segnalazioni sono visibili solo allo sviluppatore.

3.8 Programma di inviti. Il tuo codice di invito, il codice di chi ti ha invitato e le settimane di ricompensa ottenute.

3.9 Acquisti (Premium). Premium è un abbonamento con rinnovo automatico venduto tramite Google Play Billing. Riceviamo da Google Play il token di acquisto, l’ID del prodotto, lo stato e la scadenza dell’abbonamento e li verifichiamo con i server di Google per attivare Premium. Non vediamo mai il metodo di pagamento né l'indirizzo di fatturazione; il venditore è Google Play.

3.10 Notifiche push. Su Android conserviamo il token Firebase Cloud Messaging del dispositivo per recapitare richieste di amicizia, messaggi, aggiornamenti scambi, ping Radar, corrispondenze e novità. Il token viene eliminato al logout e alla cancellazione dell'account.

3.11 Pubblicità. Senza abbonamento Premium l'App mostra annunci di Google AdMob, che può raccogliere un ID pubblicitario reimpostabile, posizione approssimativa basata sull'IP e segnali app/dispositivo per mostrare, misurare e (con consenso) personalizzare gli annunci. In SEE, Regno Unito e Svizzera gli annunci compaiono solo dopo la tua scelta nella finestra di consenso Google User Messaging Platform; puoi modificarla in qualsiasi momento da Impostazioni → Opzioni privacy annunci.

3.12 Segnalazioni di crash. L'App usa Firebase Crashlytics per ricevere segnalazioni sulle chiusure anomale (stack trace, modello del dispositivo, versione del sistema operativo e dell’app, ID di installazione di Crashlytics e informazioni di base sullo stato del dispositivo). Non includono email, messaggi o posizione. Servono solo a correggere i bug.

3.13 Scanner (fotocamera). I fotogrammi sono elaborati sul dispositivo e mai caricati o conservati.

3.14 Impostazioni. Lingua, tema, dimensione griglia e opzioni di notifica Radar sono sincronizzate sull'account per mantenere le stesse preferenze sui diversi dispositivi.

3.15 Log tecnici. Il provider di hosting conserva log standard del server (indirizzo IP, ora, endpoint) per finalità di sicurezza e diagnosi dei problemi, con rotazione entro 30 giorni.

3.16 Link condivisi. Dall'App puoi condividere tramite un link (riftseeker.lol/s/…) una partita, le statistiche di un mazzo o un mazzo. Il link conserva una copia del contenuto al momento della condivisione. Per una partita, la copia include il tuo nickname, il tuo mazzo e la relativa Leggenda, la Leggenda e l'archetipo dell'avversario, formato, risultato, evento, data, singoli game e cronologia del punteggio. Per le statistiche di un mazzo include gli stessi dati di ciascuna partita; per un mazzo include nome e lista delle carte. Il nome e il mazzo dell'avversario vengono inclusi solo se lo scegli. Le note, il luogo e l'account dell'avversario sono sempre esclusi. Chiunque abbia il link può aprirlo nell'App, anche senza account; chi ha effettuato l'accesso può anche aprire il tuo profilo dai link di partite o statistiche. La pagina del sito associata al link non mostra il contenuto condiviso. Il link resta accessibile finché non lo revochi da Le mie condivisioni o fino alla scadenza scelta: 7 giorni, 30 giorni o nessuna scadenza. Il server registra il numero di aperture. Un link revocato o scaduto non è più accessibile, ma la copia resta sul server ed è elencata solo per te in Le mie condivisioni. Tutti i link che hai condiviso vengono eliminati con il tuo account.

3.17 Statistiche d'uso (Google Analytics for Firebase). L'App ti chiede una volta se vuoi condividere le statistiche d'uso: dopo la schermata di benvenuto, dopo che scegli il nickname oppure la prima volta che apri la versione che le ha introdotte. Non raccogliamo nulla prima della tua risposta, e nulla se rispondi no. Le informazioni su ciò che fai nell'App nei minuti prima di rispondere (per esempio, la tua registrazione) vengono inviate solo se dici sì; altrimenti vengono eliminate. Puoi cambiare risposta in qualsiasi momento da Impostazioni → Statistiche d'uso: se le disattivi, la raccolta si interrompe subito. La risposta viene salvata sul telefono e cancellata quando esci dal tuo account, così l'App ripropone la domanda a chi la usa dopo di te sullo stesso telefono.

Se rispondi sì, l'App Android invia a Google Analytics for Firebase questi eventi: la prima apertura; la registrazione, con il metodo di accesso (email, Google, Apple, Discord o Facebook); una sessione dello Scanner salvata, con il numero di carte e la destinazione, cioè la collezione o la lista Market; la creazione di un mazzo, con la sua origine (un nuovo mazzo, un codice mazzo, una lista incollata o una copia dal cloud); la registrazione di una partita, con il punto da cui l'hai registrata (il Registro partite, il Segnapunti, un turno di torneo o l'orologio Wear OS); un'importazione nella collezione, con il numero di righe; e, una sola volta per telefono, "activated", alla prima di queste azioni o alla prima carta aggiunta dalla sua pagina di dettaglio. Firebase aggiunge ciò che registra automaticamente: un ID dell'istanza dell'App generato da Firebase, l'inizio e la durata di ogni sessione, gli aggiornamenti dell'App, il modello del dispositivo, la versione di Android e dell'App, la lingua del telefono e il paese, che Google ricava dalla connessione (Google Analytics non memorizza l'indirizzo IP).

Non inviamo mai il tuo ID pubblicitario o l'ID Android, la tua posizione, le tue carte, i mazzi, i messaggi o qualsiasi altra cosa scrivi, il tuo nome, nickname, email o ID dell'account: le statistiche non sono collegate al tuo account RiftSeeker.

Perché: per capire quali funzioni vengono usate e misurare le nostre campagne pubblicitarie su Google Ads, cioè quante delle persone che installano l'App da un annuncio poi la usano davvero. La personalizzazione degli annunci non viene mai attivata.

Base giuridica: il tuo consenso (art. 6.1.a GDPR), richiesto nell'App e revocabile in qualsiasi momento da Impostazioni → Statistiche d'uso, con effetto immediato; la revoca non influisce sul trattamento precedente.

Chi e dove: Google LLC tratta questi dati per nostro conto, come nostro responsabile del trattamento, anche al di fuori dell'UE; il trasferimento è coperto dalle Clausole Contrattuali Standard della Commissione europea incluse nei termini di Google sul trattamento dei dati. Quando conteggiamo l'evento "activated" come conversione di una campagna, Google Ads lo conserva secondo i propri termini.

Per quanto tempo: 2 mesi in Google Analytics; le conversioni conteggiate in Google Ads seguono i tempi di conservazione di Google. Trovi maggiori informazioni nell'informativa sulla privacy di Google e in Privacy e sicurezza in Firebase.

L'App per iPhone non invia statistiche d'uso: salva solo la tua risposta.

4. Basi giuridiche (GDPR)

Contratto (art. 6.1.b): account, sincronizzazione, funzioni social, chat, scambi, Radar, Premium. Consenso (art. 6.1.a): posizione (permesso di sistema + attivazione Radar), pubblicità personalizzata (consenso UMP), statistiche d'uso (la domanda nell'App, Impostazioni → Statistiche d'uso), notifiche; revocabile in ogni momento senza pregiudicare i trattamenti precedenti. Legittimo interesse (art. 6.1.f): sicurezza, prevenzione degli abusi, moderazione, rapporti sulle chiusure anomale, sistema di reputazione. Obbligo di legge (art. 6.1.c).

5. Destinatari

Altri utenti (solo come descritto sopra e secondo le tue scelte di visibilità); responsabili del trattamento: Supabase (database, autenticazione e storage nell'UE, regione Parigi; Realtime, che consegna all'App i nuovi messaggi di chat appena arrivano, e le edge functions, cioè il codice lato server che verifica gli acquisti, cancella gli account e risponde al bot Discord, vengono eseguiti su server Supabase non sempre situati nell’UE: vedi punto 6), Google (Firebase Cloud Messaging, Crashlytics, Google Analytics for Firebase (statistiche d'uso, solo con il tuo consenso, punto 3.17; le conversioni delle nostre campagne vengono inviate anche a Google Ads), AdMob + UMP, Play Billing, Google Sign-In), Meta (Facebook Login), Discord (login, bot della community), Cloudflare (Turnstile, il controllo anti-bot del modulo di feedback su riftseeker.lol: analizza indirizzo IP, browser e connessione solo per distinguere le persone dai bot; Cloudflare usa questi segnali anche, come titolare autonomo, per migliorare il riconoscimento dei bot — informativa Turnstile); fornitori di dati sulle carte (TCGGO, Cardmarket, TCGplayer, Riftcodex) da cui scarichiamo dati pubblici — nessun tuo dato personale viene inviato loro; autorità, se obbligati per legge. Non vendiamo dati personali.

6. Trasferimenti extra-UE

Database, autenticazione e storage sono nell'Unione Europea. Supabase Realtime, che consegna all'App i nuovi messaggi di chat appena arrivano, li legge attualmente dal nostro database tramite un server Supabase nel Regno Unito (Londra) e può trasmetterli al tuo dispositivo attraverso il server Supabase più vicino. Le edge functions di Supabase vengono eseguite nella regione Supabase più vicina a chi invia la richiesta: per le richieste dall'Europa di solito in Europa, ma non sempre nell'UE (per esempio in Svizzera o nel Regno Unito), e possono essere eseguite fuori dall’Europa, per esempio negli Stati Uniti, quando la richiesta arriva da un servizio situato in quella regione (come i server di Google o di Discord); quella del modulo di feedback su riftseeker.lol viene sempre eseguita a Parigi. Questi trasferimenti sono coperti dalle Clausole Contrattuali Standard della Commissione europea incluse nel contratto sul trattamento dei dati di Supabase; Svizzera e Regno Unito hanno anche decisioni di adeguatezza della Commissione europea. Google, Meta, Discord e Cloudflare possono trattare dati negli Stati Uniti e altrove in base al Data Privacy Framework UE-USA e/o alle Clausole Contrattuali Standard.

7. Conservazione

Vedi tabella al punto 2. I dati dell’account vengono conservati finché l’account resta attivo; le posizioni Radar vengono eliminate entro pochi minuti dalla disattivazione; i contenuti eliminati restano contrassegnati come eliminati per 30 giorni (per sincronizzare la cancellazione sugli altri dispositivi) e poi vengono rimossi; i rapporti sulle chiusure anomale restano su Google fino a 90 giorni; le statistiche d'uso vengono conservate per 2 mesi in Google Analytics; i backup del server vengono ruotati entro 30 giorni. Con la cancellazione dell'account tutto ciò che è collegato viene rimosso subito (punto 9); feedback lasciati ad altri utenti e segnalazioni possono restare in forma anonima.

8. I tuoi diritti

Puoi chiedere l’accesso, la rettifica, la cancellazione, la limitazione del trattamento e la portabilità dei dati, opporti ai trattamenti basati sul legittimo interesse e revocare il consenso in ogni momento; puoi presentare reclamo al Garante per la protezione dei dati personali. Nell'App puoi: modificare nickname, visibilità e impostazioni (Profilo → Account / Impostazioni); spegnere il Radar, nasconderti o revocare il permesso; cambiare il consenso pubblicitario (Impostazioni → Opzioni privacy annunci); attivare o disattivare le statistiche d'uso (Impostazioni → Statistiche d'uso); eliminare singoli contenuti; cancellare l'intero account (punto 9). Per accesso o portabilità scrivi a admin@riftseeker.lol dall'email collegata all'account: forniamo un’esportazione in formato leggibile automaticamente (JSON) entro 30 giorni.

9. Cancellazione dell'account

Puoi cancellare definitivamente l'account e tutti i dati associati direttamente nell'App: Profilo → Account → Elimina account, poi conferma. La cancellazione è immediata e irreversibile: rimuove profilo, collezione, mazzi, liste, storico partite, scambi, messaggi, amicizie, blocchi, notifiche, posizione Radar, token push, dati del programma di inviti, registrazioni degli acquisti, link condivisi e identità di accesso. Se non riesci più ad aprire l'App, richiedi la cancellazione su riftseeker.lol/delete-account o via email; verificheremo che tu abbia accesso all’indirizzo email associato all’account prima di procedere. Un abbonamento Google Play attivo non viene annullato dalla cancellazione dell'account: annullalo da Google Play → Pagamenti e abbonamenti → Abbonamenti.

10. Minori

RiftSeeker è riservata ai maggiorenni: per creare un account devi avere almeno 18 anni. L'App è pubblicata su Google Play per un pubblico di età pari o superiore a 18 anni perché include chat tra utenti, un Radar che condivide una posizione approssimativa con i giocatori vicini e pubblicità. Non raccogliamo consapevolmente dati di minori; se ritieni che un minore abbia creato un account, contattaci e lo elimineremo.

11. Sicurezza

Tutto il traffico usa TLS. L'accesso ai dati sul server è vincolato per utente con regole di sicurezza a livello di riga; le operazioni sensibili (verifica acquisti, cancellazione account, moderazione) avvengono lato server con identità verificata. La posizione Radar precisa non lascia il telefono (le versioni precedenti dell'App la inviano, e il server la riduce a una cella prima di salvarla) e le celle salvate non sono mai leggibili da altri utenti. Nessun sistema è perfettamente sicuro: segnala qualsiasi problema al recapito indicato.

12. Modifiche

Possiamo aggiornare questa informativa. La versione corrente è sempre disponibile su riftseeker.lol/privacy e nell'App (Impostazioni → Info). Le modifiche rilevanti saranno annunciate nell'App.

13. Contatti

Giovanni Malfa — admin@riftseeker.lol