DepositMonsters - це гра, побудована на польській заставній системі: ти здаєш упаковку в автомат, скануєш чек і отримуєш Заряд, з якого вирощуєш Іскряка. Щоб це працювало, застосунок має знати, хто ти, де ти стоїш у мить натискання кнопки і що було на чеку. Цей документ каже, що з цього залишається в нас, що йде далі, а що зникає одразу.
Володілець і контакти
Володільцем персональних даних є [NAZWA FIRMY - do uzupelnienia], [ADRES POCZTOWY - do uzupelnienia].
- контакт з усіх питань, зокрема щодо персональних даних: support@depositmonsters.com
- видалення облікового запису та даних: /ua/usun-konto
Інспектор із захисту даних: [доповнить юрист - залежить від обсягу обробки та правової форми володільця].
Які дані і для чого
Наведена нижче таблиця - це повний перелік даних, які застосунок збирає або створює. У ній немає пункту „та інші технічні дані": якщо чогось тут немає, ми цього не збираємо.
| Дані | Звідки | Куди | Як довго |
|---|---|---|---|
| Особа в постачальника входу (пара „постачальник і його внутрішній ідентифікатор"), адреса електронної пошти, показуване ім’я | вхід через Google або Apple | наша база | до видалення облікового запису |
| Хеш пароля при реєстрації паролем | реєстрація | наша база, ніколи сам пароль | до видалення облікового запису |
| Токен оновлення сеансу, збережений як SHA-256 | сеанс у застосунку | наша база | 30 днів, з ротацією та анулюванням усієї родини токенів |
| Фотографія чека | камера в застосунку | пам’ять процесу сервера, не диск; аварійно зорова модель Google (Gemini), коли увімкнена | не зберігається |
| Хеш штрихкоду чека (SHA-256) | чек | наша база, окрема колекція без власника | 7 днів, видаляється базою автоматично |
| Місцеперебування GPS | одне зчитування після натискання „я біля автомата" | кеш сервера як відкрита присутність біля Зони | близько 26 годин; постійний запис про візит не містить координат |
| Мітка заявленої Зони: координати автомата, адреса, обліковий запис відкривача | гравець | наша база, а після підтвердження присутністю - спільна карта | доба без підтвердження присутністю, потім назавжди як Зона |
| Зараховані реактивації, книга Заряду, стан Іскряка, скриня, банда, виклики та матчі | гра | наша база | до видалення облікового запису; книга Заряду за задумом лише доповнюється |
| Пристрій: ідентифікатор встановлення, платформа, версія застосунку, часовий пояс, токен сповіщень | застосунок, системний дозвіл на сповіщення | наша база; токен також до Firebase Cloud Messaging (Google) | до вимкнення сповіщень або видалення облікового запису |
| Рекламний ідентифікатор пристрою, рекламні згоди | AdMob і форма згод | Google AdMob; у нас їх немає зовсім | згідно з політикою Google |
| Хеш чека про купівлю (SHA-256), ідентифікатор продукту, магазин, статус ліцензії | магазин Google Play або App Store | наша база; перевірка в Google Play Developer API та App Store Server API | запис лишається також після видалення облікового запису - див. розділ 11 |
| Помилки сервера з ідентифікатором запиту | сервер | Sentry | згідно з налаштуванням зберігання в Sentry |
| Ідентифікатор гравця Roblox після пов’язання | DepositMonsters Tycoon | наша база | до видалення облікового запису |
| Адреса e-mail зі списку очікування, платформа, мова сторінки | форма на сайті | Cloudflare R2, юрисдикція ЄС | до надсилання сповіщення про прем’єру або відкликання згоди |
| Входи в гру на Roblox і час у ній (лише пов’язані облікові записи) | DepositMonsters Tycoon | наша база | 90 днів |
| IP-адреса та журнали запитів | сервер і постачальник хостингу | Render, наша інфраструктура | коротко, технічно [доповнити: точний строк зберігання журналів] |
Правові підстави
- Виконання договору (ст. 6(1)(b) GDPR): обліковий запис, гра, зарахування чеків, Заряд, поєдинки, продаж ліцензій.
- Згода (ст. 6(1)(a) GDPR): персоналізована реклама, push-сповіщення, зчитування місцеперебування. Кожну можна відкликати, і відкликання не позбавляє доступу до гри.
- Законний інтерес (ст. 6(1)(f) GDPR): виявлення шахрайства та зловживань, безпека облікових записів, діагностика помилок, захист від претензій.
- Юридичний обов’язок (ст. 6(1)(c) GDPR): розрахунки за купівлі та рекламації [доповнить юрист: які саме обов’язки і на який строк].
Згода з правилами та підтвердження віку є умовою створення облікового запису - без них обліковий запис узагалі не виникає.
Чек і фотографія чека
Шлях чека виглядає так:
- Застосунок робить знімок і надсилає його на наш сервер. Сервер тримає його в пам’яті процесу на час зчитування.
- Штрихкод ми декодуємо самі, локально. Текст чека спершу читає Tesseract - програма, що працює на нашому сервері, без надсилання чогось назовні.
- Якщо це зчитування не вдалося, а аварійну зорову модель увімкнено, той самий знімок - зменшений до 1024 пікселів довшого краю - потрапляє до Google (інтерфейс Gemini) виключно для того, щоб переписати з нього числа. Модель не читає штрихкоду і не отримує даних облікового запису. Цей шлях вимикається з нашого боку одним налаштуванням, і тоді нікуди не йде нічого.
- Від чека в нас лишається виключно хеш SHA-256 цифр штрихкоду, в окремій колекції, без власника, суми, години та магазину. База видаляє його сама через 7 днів. Він служить одному: щоб той самий чек не можна було зарахувати двічі.
- Постійний запис про зарахування каже лише: цей обліковий запис отримав стільки Заряду біля цієї Зони, з таким статусом і такою кількістю штук. У ньому немає нічого зі змісту чека.
Місцеперебування
Зчитування потрапляє до кешу сервера як відкрита присутність біля обраної Зони і зникає звідти саме приблизно через 26 годин, тобто після часу, коли чек і так уже не можна зарахувати. Запис, що лишається назавжди, каже лише, біля якої Зони було зарахування - без координат.
Окремо: коли ти заявляєш нову Зону, координати автомата та його адреса стають - після підтвердження присутністю - точкою на спільній карті, видимою всім гравцям. Біля Зони назавжди лишається також відомість, що її відкрив твій обліковий запис. Це місцеперебування автомата, а не твоє, але варто знати, що воно публічне.
Вхід і особа
До гри ти входиш обліковим записом Google або Apple; можна також створити обліковий запис паролем. Особу зберігаємо як пару „постачальник і його внутрішній ідентифікатор" - ніколи як саму адресу електронної пошти. Адреса, якщо постачальник її подає, служить двом речам: зв’язку та поєднанню облікових записів.
- Поєднання облікових записів діє виключно за перевіреною адресою. Обліковий запис, створений паролем, неперевірений, тож до нього не вдасться підключити вхід Google чи Apple. Це захист, а не незручність: без нього хтось міг би створити обліковий запис на чужу адресу й чекати, поки власник увійде через Google просто в обліковий запис, пароль до якого знає зловмисник.
- Пароль зберігаємо виключно як хеш. Самого пароля ми не знаємо, і відтворити його з бази неможливо.
- Від Apple зберігаємо один додатковий токен і виключно для того, щоб під час видалення облікового запису анулювати зв’язок на боці Apple. Ні для чого іншого його не використовуємо і нікуди, крім Apple, не надсилаємо.
- Обліковий запис отримує публічний шестизначний код, за яким тебе знаходять інші гравці, що хочуть кинути виклик. Назва твого Іскряка - це той самий код, записаний складами, а не окремі дані в базі. Пошук суперників працює лише за повним кодом або повною назвою, ніколи за фрагментом назви облікового запису: цей список свідомо не є адресною книгою.
- Записуємо також дату підтвердження віку та прийняття правил - це вимога, а не статистика.
Реклама і згоди
Застосунок безкоштовний і показує повноекранну рекламу, яку надає Google AdMob. Ані реклама, ані гроші ніколи не дають Заряду чи будь-якої переваги в грі.
Повноекранна реклама з’являється у трьох місцях і тільки в них:
- у підсумку раунду міні-гри, після показу результату;
- у підсумку матчу Метальні;
- при виході з екрана ігор.
Перелік місць без реклами закритий:
- увесь шлях біля автомата: вибір Зони, присутність, камера, результат чека;
- вилуплення Капсули і перший день нового гравця;
- процедури догляду за Іскряком;
- карта під час пошуку автомата;
- перший запуск, вибір мови, вхід та екрани згод.
Для показу реклами AdMob використовує рекламний ідентифікатор пристрою та дані про події в застосунку. Ці дані потрапляють до Google, а не до нас: у себе ми не тримаємо ані рекламного ідентифікатора, ані рекламного профілю гравця.
У Європейському економічному просторі та у Великій Британії перед першою рекламою ми показуємо форму згод (Google User Messaging Platform). До відповіді не йде жодна реклама. Згоду можна відкликати або змінити будь-коли в налаштуваннях застосунку, у розділі документів. Відмова від персоналізації не вимикає реклами - вона вимикає персоналізацію. На iOS про згоду на відстеження окремо просить система (App Tracking Transparency), а її відсутність означає неперсоналізовану рекламу.
Стану згоди ми в себе не записуємо - його власником є програмне забезпечення постачальника та операційна система.
Одноразова купівля ліцензії прибирає повноекранну рекламу назавжди, на кожному пристрої цього облікового запису. Добровільна реклама, тобто та, яку гравець вмикає сам, працює і після купівлі і так само не дає Заряду.
Купівлі та ліцензія
Ліцензію без реклами купують у Google Play або App Store. Платіж обслуговує магазин: ми не бачимо і не зберігаємо даних картки чи будь-яких інших платіжних даних.
Після купівлі магазин видає чек. У нас лишається:
- хеш SHA-256 чека - щоб одна купівля не розблокувала двох облікових записів;
- ідентифікатор продукту, назва магазину, дата купівлі та статус ліцензії.
Чек перевіряємо безпосередньо у видавця (Google Play Developer API, App Store Server API); заяви застосунку нам не досить. Слухаємо також сповіщення магазину про повернення коштів: повернення гасить ліцензію, а запис про неї лишається зі статусом „повернуто", щоб можна було відповісти на питання, чому реклама повернулася.
Власником ліцензії є обліковий запис у нашій базі, не телефон і не обліковий запис магазину.
Сповіщення
Сповіщення добровільні. Про системний дозвіл просимо лише перед першим домовленим поєдинком, а не на старті застосунку.
Надсилаємо два види сповіщень і тільки ці два:
- твій хід у домовленому поєдинку;
- Заряд закінчується, щонайбільше раз на добу.
Для надсилання потрібен токен пристрою з Firebase Cloud Messaging (Google). Зберігаємо його разом з ідентифікатором встановлення, платформою, версією застосунку та часовим поясом пристрою. Часовий пояс потрібен, щоб нікого не будити вночі: сповіщення, що припадає на 22-8 за часом гравця, чекає до ранку, замість того щоб бути скасованим.
Вимкнення в налаштуваннях застосунку видаляє токен із нашої бази, тож нам нікуди надсилати сповіщення. Системної згоди ми в себе не копіюємо - її єдиним власником є операційна система, і там само її можна відкликати.
Гра на Roblox
DepositMonsters Tycoon - це окреме місце на платформі Roblox, де твій Іскряк із цього застосунку працює на заводі, який ти відбудовуєш. Воно ще не видане.
- Облікові записи поєднують кодом пов’язання, згенерованим у нашому застосунку: один код на обліковий запис, дійсний кілька хвилин, одноразовий. Код переписують у грі на Roblox. Публічного коду облікового запису для цього не використовуємо, бо його знають інші гравці.
- Прогрес заводу зберігає Roblox на своїх серверах, і ми його в себе не тримаємо. Для пов’язаних облікових записів ми натомість записуємо входи в гру і час у ній (події видаляються через 90 днів), щоб технічна підтримка бачила, що відбувалося. Ніщо з цього не впливає на гру в застосунку.
- Після пов’язання зберігаємо в себе ідентифікатор гравця Roblox і прив’язуємо його до облікового запису в грі. Roblox передає нам виключно цей ідентифікатор - ми не отримуємо ані імені гравця, ані адреси електронної пошти, ані інших даних з облікового запису Roblox.
- Пов’язання одноразове, і розірвати його з застосунку неможливо. Один обліковий запис Roblox відповідає одному обліковому запису в грі і навпаки. Помилку виправляє технічна допомога, бо це єдине місце, де з того боку стоїть людина. Пов’язання зникає разом із видаленням облікового запису.
- Усе, що відбувається на платформі Roblox, підпадає під правила та політику приватності Roblox Corporation. Ми не впливаємо на те, які дані збирає там Roblox. DepositMonsters не пов’язаний із Roblox Corporation.
Одержувачі даних
Даних не продаємо і не надаємо для чужих маркетингових цілей. Натомість користуємося постачальниками, без яких застосунок не працює.
| Одержувач | Для чого | Що отримує |
|---|---|---|
| вхід, сповіщення (Firebase), реклама (AdMob), магазин Google Play, аварійне зчитування чека (Gemini) | особа для входу, токен сповіщень, рекламний ідентифікатор і згоди, чек про купівлю, а при аварійному зчитуванні також фотографія чека | |
| Apple | вхід, магазин App Store | особа для входу, чек про купівлю |
| MongoDB Atlas | база даних гри, регіон Франкфурт (Європейський Союз) | усі дані облікового запису та гри, перелічені в розділі 2 |
| Render | хостинг сервера і кеш, регіон Франкфурт (Європейський Союз) | мережевий трафік, журнали запитів, дані в обробці |
| Sentry | звіти про помилки сервера | зміст помилки та ідентифікатор запиту |
| Cloudflare | зберігання списку очікування прем’єри (R2, юрисдикція ЄС) | адреса e-mail, платформа і мова сторінки з форми списку очікування |
| Roblox Corporation | DepositMonsters Tycoon, після пов’язання облікових записів | ідентифікатор гравця Roblox, дані картки Іскряка, обчислені з гри |
Як довго зберігаємо дані
- Фотографія чека - не зберігається взагалі.
- Хеш штрихкоду - 7 днів, видаляється базою автоматично.
- Зчитування місцеперебування - близько 26 годин у кеші, потім зникає саме.
- Мітка без підтвердження присутністю - доба, потім видаляється сама.
- Токен оновлення сеансу - 30 днів, з ротацією при кожному використанні.
- Токен сповіщень - до вимкнення сповіщень або видалення облікового запису.
- Обліковий запис, особа та дані гри - до видалення облікового запису. Що саме відбувається при видаленні, описує сторінка видалення облікового запису.
- Запис про ліцензію - лишається також після видалення облікового запису, бо є доказом купівлі й підставою розрахунку [доповнить юрист: точний строк, що випливає з правил бухгалтерського обліку та позовної давності].
- Зони на спільній карті - лишаються, бо описують автомат, а не гравця; після видалення облікового запису відомість про відкривача перестає вказувати на наявний обліковий запис.
Твої права
Тобі належить право на:
- доступ до своїх даних і отримання їхньої копії;
- виправлення неправильних даних;
- видалення даних;
- обмеження обробки;
- перенесення даних, оброблюваних на підставі договору або згоди;
- заперечення проти обробки, що спирається на законний інтерес;
- відкликання згоди будь-коли, без впливу на законність обробки до відкликання;
- подання скарги Голові Управління з питань захисту персональних даних (вул. Stawki 2, 00-193 Варшава, Польща).
Запити приймаємо на адресу support@depositmonsters.com. Найшвидший шлях до видалення даних - це, однак, сам застосунок; його описує сторінка видалення облікового запису.
Ми не ухвалюємо щодо гравців рішень, які спираються виключно на автоматизовану обробку і викликали б для них правові наслідки. Натомість автомат позначає підозрілі зарахування чеків і підозрілі забіги міні-ігор; таку справу потім розглядає людина в панелі допомоги.
Безпека
- Увесь зв’язок застосунку з сервером іде через HTTPS.
- Токен доступу живе 15 хвилин, токен оновлення 30 днів і лежить у базі виключно як SHA-256. При кожному використанні він проходить ротацію, а спроба скористатися використаним токеном анулює всю родину сеансів.
- Паролі зберігаємо як хеші; чеки про купівлю та штрихкоди чеків також виключно як хеші.
- База й сервер стоять у регіоні Франкфурт, з резервними копіями та відновленням до точки в часі.
- Доступ до панелі допомоги мають виключно облікові записи з наданою роллю; роль не можна призначити собі із застосунку.
- Збираємо якомога менше - звідси відсутність сховища фотографій чеків, відсутність стеження у фоні та відсутність власної копії рекламних згод.
Діти і вік
Гра призначена для осіб віком від 16 років. Підтвердження віку є умовою створення облікового запису. Ми не спрямовуємо застосунок до дітей і свідомо не збираємо даних осіб, молодших за цей поріг. Якщо дізнаємося, що обліковий запис створила молодша особа, видалимо його разом із даними.
Список очікування прем’єри
На сайті можна залишити адресу e-mail, щоб отримати одне сповіщення в день прем’єри застосунку. Запис не потребує облікового запису і не пов’язується з обліковим записом у грі.
- Зберігаємо адресу e-mail, платформу, якщо ти її вибрав, мову сторінки, з якої ти записався (нею надішлемо сповіщення), дату запису і версію тексту згоди. Нічого більше - ні IP-адреси, ні даних браузера.
- Підставою є згода (ст. 6 п. 1 літ. a GDPR). Ти відкликаєш її, написавши на support@depositmonsters.com - тоді ми видаляємо адресу зі списку.
- Список зберігається в Cloudflare R2, у юрисдикції Європейського Союзу, і його не можна прочитати через сайт - лише ключем адміністратора.
- Для надсилання сповіщення ми передамо адреси постачальнику пошти [до заповнення: Brevo або інший], лише на час надсилання.
- Після надсилання сповіщення про прем’єру ми видаляємо весь список. Адресу не використовуємо ні для чого іншого і нікому її не продаємо.
Зміни політики
Про суттєві зміни попередимо в застосунку, перш ніж вони наберуть чинності. Дата останньої зміни стоїть угорі цієї сторінки. Зміна, яка потребує згоди, не набере чинності без запиту про неї.