Wprowadzenie
Echoes of Battle („my”, „nasz”, „aplikacja”) zobowiązuje się do ochrony Twojej prywatności. Niniejsza Polityka prywatności wyjaśnia, w jaki sposób gromadzimy, wykorzystujemy i zabezpieczamy Twoje informacje podczas korzystania z naszej aplikacji mobilnej. Przetwarzamy dane osobowe zgodnie z Ogólnym rozporządzeniem UE o ochronie danych (RODO/GDPR) oraz podobnymi przepisami.
Informacje, które gromadzimy
Gromadzimy następujące kategorie danych:
Dane konta: Gdy się logujesz (przez Google, Apple lub jako gość), przechowujemy Twój identyfikator użytkownika, nazwę wyświetlaną oraz adres e-mail. Konta gościa używają lokalnie wygenerowanego anonimowego identyfikatora.
Dane o użytkowaniu: Historia odsłuchanych bitew, wyniki quizów, wizyty GPS, osiągnięcia, XP, złoto, serie oraz dzienniki aktywności. Dane te są przechowywane lokalnie na Twoim urządzeniu i opcjonalnie synchronizowane z Firebase w celu dostępu z wielu urządzeń.
Dane lokalizacyjne: Gdy korzystasz z wykrywania pól bitewnych GPS, uzyskujemy dostęp do lokalizacji Twojego urządzenia, aby określić bliskość historycznych miejsc bitew. Lokalizacja jest odczytywana tylko wtedy, gdy aplikacja jest otwarta (nigdy w tle). Gdy meldujesz się na polu bitwy, Twoje dokładne współrzędne są jednorazowo wysyłane na nasz serwer, aby potwierdzić obecność, a zapis wizyty (bitwa i czas) jest przechowywany na Twoim koncie. Współrzędne pinezek (gdy publicznie umieszczasz pinezkę) również są przechowywane na naszych serwerach.
Dane o zakupach: Transakcje zakupów w aplikacji są przetwarzane przez Apple App Store lub Google Play Store za pośrednictwem RevenueCat. Nie przechowujemy danych kart płatniczych.
Token powiadomień push: Gdy udzielisz zgody na powiadomienia push, przechowujemy token push Expo w rekordzie użytkownika, aby przypomnienia o powrocie i o wydarzeniach mogły dotrzeć do Twojego urządzenia. Token ten jest traktowany jako dane osobowe w rozumieniu RODO/GDPR.
Deklaracja wieku: Zanim dokonasz zakupu za prawdziwe pieniądze, wyświetlamy neutralny ekran wieku i przechowujemy podany przez Ciebie rok urodzenia na Twoim koncie. Wykorzystujemy go wyłącznie do ustalenia, czy wymagana jest bramka rodzicielska, oraz do serwowania treści odpowiednich do wieku. Nie zbieramy Twojej pełnej daty urodzenia.
Brak reklam: Aplikacja nie wyświetla żadnych reklam. Nie zawiera SDK reklamowego, nie uzyskuje dostępu do identyfikatora reklamowego urządzenia i nie prowadzi śledzenia reklamowego.
Analityka: Aplikacja na Androida nie wysyła danych analitycznych o użytkowaniu. Wyłącznie za Twoją zgodą aplikacja wysyła raporty o awariach przez Sentry, oznaczone pseudonimowym identyfikatorem konta (bez imienia i adresu e-mail). Na naszej stronie Google Analytics i Metricool dostarczają anonimowych statystyk i ładują się dopiero po akceptacji cookies.
Jak wykorzystujemy Twoje dane
Wykorzystujemy gromadzone dane, aby:
- Zapewnić podstawowe funkcje aplikacji (śledzenie postępów, osiągnięcia, rankingi)
- Synchronizować Twoje postępy między urządzeniami (Firebase)
- Przetwarzać zakupy w aplikacji (RevenueCat)
- Poprawiać stabilność aplikacji (raportowanie awarii, za zgodą)
- Rozumieć wzorce użytkowania (analityka, za zgodą)
- Dostarczać powiadomienia push (serie, osiągnięcia, za Twoim zezwoleniem)
- Weryfikować, czy masz wystarczający wiek do zakupów za prawdziwe pieniądze (ekran wieku + bramka rodzicielska)
Podstawa prawna przetwarzania (art. 6 RODO/GDPR)
Przetwarzamy Twoje dane osobowe na następujących podstawach prawnych:
Umowa (art. 6 ust. 1 lit. b): Dane konta, dane o użytkowaniu, dane o zakupach w aplikacji oraz synchronizacja w chmurze są niezbędne do dostarczenia podstawowych funkcji aplikacji, o które prosisz.
Prawnie uzasadniony interes (art. 6 ust. 1 lit. f): Token powiadomień push, przypomnienia o powrocie oraz zagregowane pozycje w rankingu służą naszemu prawnie uzasadnionemu interesowi w utrzymaniu zaangażowania użytkowników. Możesz zrezygnować w dowolnym momencie w sekcji Ustawienia > Powiadomienia.
Zgoda (art. 6 ust. 1 lit. a): Opcjonalna analityka, opcjonalne raportowanie awarii oraz opcjonalna personalizacja opierają się na Twojej wyraźnej zgodzie (Ustawienia > Prywatność). Możesz wycofać zgodę w dowolnym momencie bez wpływu na zgodność z prawem wcześniejszego przetwarzania.
Obowiązek prawny (art. 6 ust. 1 lit. c): W stosownych przypadkach przechowujemy dokumentację płatności przez okres wymagany przez prawo podatkowe.
Przechowywanie i bezpieczeństwo danych
Twoje dane są przechowywane lokalnie na urządzeniu za pomocą AsyncStorage. Po zalogowaniu dane o postępach są synchronizowane z Firebase Firestore (Google Cloud, region UE: europe-west1). Cała transmisja danych korzysta z szyfrowania HTTPS. Nie sprzedajemy Twoich danych osobowych. Udostępniamy dane wyłącznie dostawcom usług wymienionym poniżej w sekcji „Usługi stron trzecich” i tylko w zakresie niezbędnym do zapewnienia funkcji, z których korzystasz.
Twoje prawa (RODO/GDPR)
Na mocy RODO/GDPR przysługują Ci następujące prawa:
- Dostęp (art. 15): Eksport wszystkich Twoich danych (Ustawienia > Prywatność > Eksportuj dane). Eksport obejmuje zarówno dane przechowywane lokalnie na Twoim urządzeniu, jak i dane, które przechowujemy na naszych serwerach (rekord konta, ostatnie 100 meczów PvP z zahaszowanymi identyfikatorami przeciwników, rejestracje w turniejach, pozycję w lidze, identyfikatory wojen klanowych). Dostarczane jako plik JSON za pośrednictwem standardowego menu udostępniania.
- Sprostowanie (art. 16): Zaktualizuj informacje w swoim profilu na ekranie Profil.
- Usunięcie (art. 17): Usuń wszystkie swoje dane (Ustawienia > Usuń konto). Uruchamia to kaskadę po stronie serwera, która usuwa rekord Twojego konta, Twoje mecze PvP (rekord przeciwnika zostaje zachowany, a Twoje miejsce zostaje zastąpione wpisem „[deleted]”), rejestracje w turniejach, pozycję w lidze oraz Twój udział w rekordach wojen klanowych. Zobacz przewodnik usuwania konta, aby poznać pełne kroki i zakres usuwanych danych.
- Przenoszalność (art. 20): Twój eksport jest dostarczany w formacie JSON, formacie nadającym się do odczytu maszynowego, odpowiednim do przeniesienia do dowolnej innej usługi.
- Ograniczenie (art. 18): Możesz zażądać ograniczenia przetwarzania w trakcie korzystania z prawa do sprzeciwu; skontaktuj się z privacy@echoesofbattle.com.
- Sprzeciw (art. 21): Możesz sprzeciwić się przetwarzaniu opartemu na prawnie uzasadnionym interesie; wyłącz powiadomienia push w sekcji Ustawienia > Powiadomienia lub cofnij zgodę na analitykę/raportowanie awarii w sekcji Ustawienia > Prywatność.
- Wycofanie zgody: Cofnij zgodę na analitykę/raportowanie awarii w dowolnym momencie (Ustawienia > Prywatność) bez wpływu na wcześniejsze zgodne z prawem przetwarzanie.
Aby skorzystać z tych praw, użyj opcji w aplikacji lub skontaktuj się z nami pod adresem privacy@echoesofbattle.com. Odpowiadamy w ciągu 30 dni, zgodnie z wymogami art. 12 ust. 3.
Zarządzanie zgodami
Przy pierwszym uruchomieniu prosimy o Twoją zgodę w zakresie:
- Analityka: Anonimowe śledzenie użytkowania (opcjonalne)
- Raportowanie awarii: Rejestrowanie błędów dla stabilności (opcjonalne)
Oba przełączniki są domyślnie wyłączone i nic nie jest wysyłane, zanim dokonasz wyboru. Personalizację możesz włączyć lub wyłączyć w sekcji Ustawienia > Prywatność.
Możesz zmienić swoje preferencje dotyczące zgód w dowolnym momencie w sekcji Ustawienia > Prywatność. Prowadzimy dziennik audytowy zmian zgód obejmujący ostatnie 50 wpisów.
Prywatność dzieci
Echoes of Battle jest przeznaczona do użytku edukacyjnego i jest odpowiednia dla użytkowników w wieku 12+. Nie gromadzimy świadomie danych osobowych od dzieci poniżej 13. roku życia. Przed jakimkolwiek zakupem za prawdziwe pieniądze prezentujemy neutralny ekran wieku i wymagamy bramki rodzicielskiej (wyzwanie arytmetyczne) dla każdego, kto zadeklaruje wiek poniżej 18 lat. Tryb klasowy jest przeznaczony do nadzorowanych środowisk edukacyjnych.
Usługi stron trzecich
Korzystamy z następujących usług stron trzecich:
- Firebase (Google, region UE): Uwierzytelnianie, przechowywanie danych; analityka (tylko web)
- RevenueCat: Zarządzanie zakupami w aplikacji
- Sentry: Raportowanie awarii (za zgodą)
- Google Analytics i Metricool (analityka strony): Anonimowe statystyki odwiedzin na naszej stronie, ładowane wyłącznie za Twoją zgodą na cookies
- Google Ads, piksel Meta (Facebook) i piksel X (Twitter) (strona): Mierzą skuteczność naszych reklam, ładowane wyłącznie za Twoją zgodą na cookies
- Cloudflare (strona): Web Analytics bez plików cookie (liczenie odsłon, bez zgody) oraz ochrona Turnstile przed botami na formularzu newslettera
- Expo Push Service: Dostarczanie powiadomień
- Apple/Google: Uwierzytelnianie za pomocą funkcji „Zaloguj się przez Apple/Google”
Okres przechowywania danych
Przechowujemy Twoje dane zgodnie z następującymi okresami:
- Rekord konta (Firestore users/{uid}): Tak długo, jak Twoje konto jest aktywne. Usuwany natychmiast, gdy usuniesz konto w aplikacji; prośby e-mailowe realizujemy w ciągu 30 dni.
- Mecze i powtórki PvP: Dokumenty powtórek wygasają automatycznie 90 dni po rozliczeniu. Dokumenty meczów są przechowywane dłużej ze względu na historię przeciwnika, ale są anonimizowane po usunięciu Twojego konta.
- Raporty o awariach (Sentry): Wysyłane wyłącznie za Twoją zgodą. 90 dni, następnie automatycznie usuwane zgodnie z hostowaną polityką przechowywania Sentry.
- Dokumentacja zakupów (RevenueCat): Przechowywana przez okres wymagany przez prawo podatkowe.
- Dziennik audytowy zgód: Ostatnie 50 wpisów zmian zgód, przechowywane lokalnie na Twoim urządzeniu.
- Pamięć podręczna (audio, obrazy): Kontrolowana przez użytkownika w sekcji Pobrane > Wyczyść wszystko.
Rankingi codziennych gier
Gdy kończysz codzienną grę (pinezkę dnia, Bitwę dnia albo wyzwanie dnia w grze „Gdzie walczono?”), Twój wynik trafia do wspólnego rankingu, z którego korzystają strona i aplikacja. Przechowujemy go w Google Firebase (region europe-west1). Zapisujemy: dzień, Twoją odpowiedź (gdzie postawiono każdą pinezkę albo jaką bitwę wskazano i w którym kroku), wynik obliczony z tej odpowiedzi przez nasz serwer, losowy identyfikator, który Twoja przeglądarka tworzy dla tej strony (przechowujemy wyłącznie jego zahaszowaną postać z dodatkiem soli), oraz nazwę widoczną w rankingu: wylosowaną z naszej listy albo wpisaną przez Ciebie.
- Kraj: zgłoszenie przechodzi przez nasz serwer brzegowy Cloudflare, który odczytuje kraj z Twojego połączenia i przekazuje go razem z wynikiem. Ranking pokazuje wtedy flagę tego kraju obok Twojej nazwy i liczy Cię w tabelach kraju, regionu oraz narodów. Adresu IP nie przechowujemy; na potrzeby łagodnego limitu zgłoszeń z jednej sieci dziennie zapisujemy wyłącznie jego zahaszowaną postać z dodatkiem soli, razem z rankingiem danego dnia.
- Flaga piratów: gdy nie da się ustalić Twojej prawdziwej lokalizacji (połączenie nie zdradza kraju albo idzie przez Tor, VPN lub sieć chmurową, rozpoznane po operatorze sieci, albo strefa czasowa przeglądarki jest na innym kontynencie niż połączenie), widnieje przy Tobie flaga piratów, a wynik liczy się tylko w rankingu świata. Operatora sieci i strefę czasową wykorzystujemy wyłącznie do tego sprawdzenia i ich nie przechowujemy.
- Własna nazwa: nazwę, którą wpiszesz, nasz serwer sprawdza z listą wulgaryzmów, obelg i treści nienawistnych w kilku językach; nazwa, która jej nie przejdzie, zostaje odrzucona, a nazwę łamiącą tę zasadę możemy ukryć w rankingu. Nie wpisuj w niej imienia i nazwiska ani innych danych osobowych.
- Kto to widzi: ranking pokazuje publicznie tylko nazwę, flagę i wynik. Podstawa prawna: nasz prawnie uzasadniony interes w prowadzeniu rankingu, w którym sam decydujesz się wziąć udział (art. 6 ust. 1 lit. f). Aby usunąć swoje wpisy, napisz na privacy@echoesofbattle.com i podaj nazwę, pod którą zapisano wyniki, oraz dni.
Personalizacja na stronie
Niektóre bloki na echoesofbattle.com dopasowują się do Ciebie: „Czytaj dalej” pod każdym artykułem, „Dobrane dla Ciebie” na stronie głównej i na blogu, dobrowolna ankieta „Jaki jest Twój front historii?”, ścieżka po quizie, zachęta na końcu strony oraz jeden blok wybierany według kraju. Wszędzie tam widzisz dopisek „Dobrane dla Ciebie · zmień · wyłącz”. Nigdy nie próbujemy zgadywać Twojej płci ani innych cech osobistych, a na stronach dla szkół i lekcji nic nie jest dopasowywane.
Zapisywane tylko na Twoim urządzeniu (w pamięci lokalnej przeglądarki, nigdy nie trafia do nas):
- Historia czytania (
eob_read,eob_last): które nasze artykuły otwierasz i który był ostatni, żeby najpierw pokazywać nieprzeczytane i proponować „Czytaj dalej”. - Odpowiedzi z ankiety i profil zainteresowań (
eob_profile): wybrane epoki i tematy, policzone z nich udziały oraz wyniki rozwiązanych quizów. Do tego informacja, kiedy ankieta była pokazana lub pominięta (eob_pz_sv), żeby proponować ją najwyżej raz na 14 dni. - Twoja epoka startowa (
eob_era) i to, czy jesteś już na liście (eob_subscribed). - Licznik wizyt (
eob_visits): tylko po akceptacji statystyk w banerze cookies. Bez tej zgody pamiętamy wyłącznie bieżącą wizytę, do zamknięcia sesji przeglądarki. - Skąd jest ta wizyta: oznaczenia kampanii w linku i strona, z której przychodzisz, zapamiętane tylko na bieżącą sesję przeglądarki (razem z identyfikatorem kliknięcia, jeśli trafiasz z naszej reklamy Google), żeby pokazać pasującą propozycję oraz, wyłącznie gdy zaakceptujesz statystyki w banerze cookies, przekazać Google Analytics i Google Ads, skąd zaczęła się wizyta (na przykład ofertę dla szkół po wejściu z linku szkolnego albo brak prośby o zapis po wejściu z naszego newslettera). Jedyny wyjątek od zasady „tylko na Twoim urządzeniu”: jeśli potem zapiszesz się na newsletter, oznaczenia kampanii z tego linku (bez strony, z której przychodzisz) trafiają razem z adresem e-mail, jak opisano w części Newsletter na stronie.
- Grupa kontrolna i przełącznik (
eob_pz_group,eob_pz_off).
Blok według kraju. Na stronie głównej i pod artykułami jeden blok zależy od kraju połączenia (na przykład polskie bitwy w Polsce). Cloudflare, nasz dostawca hostingu, ustala kraj z adresu IP przy każdym żądaniu; używamy go na bieżąco do wyboru tego bloku i go nie zapisujemy. Sam artykuł, tytuł strony i jej opis są takie same dla wszystkich. Podstawa prawna: nasz prawnie uzasadniony interes w pokazywaniu trafnych treści (RODO art. 6 ust. 1 lit. f).
Grupa kontrolna. Żeby sprawdzić, czy personalizacja naprawdę pomaga, mniej więcej 1 na 10 urządzeń trafia przy pierwszej wizycie losowo do grupy kontrolnej, która widzi domyślną kolejność redakcji i nie widzi bloku według kraju. Jeśli zaakceptujesz statystyki, Google Analytics dostaje informację, w której jesteś grupie i którą propozycję kliknięto, nigdy historię czytania ani odpowiedzi z ankiety.
Zainteresowania w newsletterze. Jeśli zapiszesz się z ankiety i zaznaczysz „Dopasuj historie do moich odpowiedzi”, tematy wypisane przy tym polu (na przykład „II wojna światowa, Morze”) zapiszemy w MailerLite razem z adresem e-mail, żeby cotygodniowa historia pasowała do Twojego frontu. To jedyny przypadek, w którym coś z personalizacji opuszcza Twoje urządzenie. Bez zaznaczenia wysyłamy tylko adres e-mail.
Wyczyść lub wyłącz. Użyj przycisków poniżej albo „wyłącz” przy dowolnym dopasowanym bloku. Czyszczenie usuwa z tej przeglądarki historię czytania, odpowiedzi z ankiety, liczniki i epokę startową. Dane tej strony możesz też usunąć w ustawieniach przeglądarki.
Kontakt w sprawie prywatności
W przypadku pytań dotyczących prywatności, skarg lub w celu skorzystania z praw wynikających z RODO/GDPR:
- Kontakt główny: privacy@echoesofbattle.com
- Wyznaczony kontakt ds. prywatności (działa jako inspektor ochrony danych ds. zapytań): powyższy kontakt ds. prywatności
- Czas odpowiedzi: W ciągu 30 dni, zgodnie z wymogami art. 12 ust. 3 RODO/GDPR
- Organ nadzorczy: Jeśli uważasz, że Twoje dane są przetwarzane niezgodnie z prawem, masz prawo wnieść skargę do lokalnego organu ochrony danych. Użytkownicy z UE mogą znaleźć właściwy krajowy organ na stronie https://edpb.europa.eu/about-edpb/board/members_en.