Учим татарский
Учим татарский · LearnTatar

Политика конфиденциальности

Редакция от 16 октября 2026 г. · Действует с 16 октября 2026 г.

Настоящая Политика описывает, какие данные обрабатывает сервис для изучения татарского языка «Учим татарский» (LearnTatar) и зачем.

На что распространяется

ПродуктАдрес / идентификатор
Сайтlearntatar.ru
Сайтучим-татарский.рф
Telegram Mini Appприложение «Учим татарский» внутри Telegram
Приложение для Android«Учим татарский», пакет com.learntatar (Google Play)
Приложение для iOS«Учим татарский», bundle ID ru.learntatar.LearnTatar (App Store)

Далее все они вместе — «Сервис». Разделы 1–7 общие для всех платформ; в разделах 8–11 описаны различия каждой платформы. Контакт по любым вопросам о данных: support@learntatar.ru.

Коротко. В приложениях для Android и iOS нет ни регистрации, ни рекламы, ни аналитики, ни трекеров — только случайный идентификатор, который приложение генерирует само на вашем устройстве. Он появляется не при запуске, а в момент, когда вы впервые что-то сохраняете (добавляете слово в словарь или сообщаете о проблеме со словом), и учётную запись можно удалить прямо из приложения — в настройках. На сайте есть вход через Яндекс, VK ID, Mail.ru или код на почту, а также счётчик Яндекс.Метрики. В Telegram Mini App вход только по вашему Telegram ID — сторонних провайдеров там нет. Мы никогда не запрашиваем у соцсетей доступ к ленте, друзьям, фотографиям или переписке и не публикуем ничего от вашего имени.

1. Данные обучения (все платформы)

Чтобы прогресс сохранялся между запусками и был одинаковым на всех ваших устройствах, на сервере хранится привязанное к вашей учётной записи:

Эти данные создаёте вы сами в ходе занятий. Мы не обогащаем их данными из внешних источников и не используем для рекламного профилирования.

2. Авторизация: что передаёт каждый провайдер

Учётная запись нужна, чтобы отличить ваш словарь от чужого. Способ входа зависит от платформы. Ниже — что мы запрашиваем у провайдера и что из этого реально сохраняем в своей базе.

Способ входа Где доступен Что нам возвращает провайдер Что мы сохраняем у себя
Яндекс ID только сайт идентификатор пользователя Яндекса, отображаемое имя (или настоящее имя), основной адрес электронной почты признак «yandex», идентификатор Яндекса, имя, e-mail
VK ID только сайт запрашиваемое разрешение — только email. Возвращается: идентификатор пользователя VK, имя, фамилия, адрес электронной почты признак «vk», идентификатор VK, «Имя Фамилия», e-mail
Mail.ru только сайт идентификатор пользователя Mail.ru, имя, фамилия, ник, адрес электронной почты признак «mail», идентификатор Mail.ru, имя, e-mail
Код на e-mail только сайт адрес вводите вы сами; провайдера нет e-mail; хэш одноразового кода (SHA-256, не сам код), счётчик попыток, IP-адрес запроса, срок годности кода. Запись удаляется сразу после успешного входа или истечения срока
Telegram только Telegram Mini App
(единственный способ входа там)
Telegram передаёт подписанный блок initData: числовой идентификатор пользователя, имя, фамилия, username, язык интерфейса признак «telegram», числовой идентификатор Telegram, «Имя Фамилия». Username, язык и e-mail не сохраняем
Вход по устройству Android, iOS внешний провайдер не участвует признак «device» и случайный идентификатор device_id (UUIDv4), сгенерированный приложением на вашем устройстве; платформа (Android или iOS) и модель устройства — например, «iPhone» или «Samsung Galaxy A54», — чтобы подписать телефон в списке способов входа (раздел 2.4). Имя, которое вы дали устройству, мы не получаем

2.1. Чего мы у соцсетей не просим

Ни один из провайдеров не даёт нам доступ к вашей ленте, списку друзей и подписок, фотографиям, сообщениям, группам, номеру телефона или дате рождения. Мы не получаем права публиковать записи, отправлять сообщения или совершать любые действия от вашего имени. Аватары (фотографии профиля) мы не сохраняем. Токен доступа провайдера используется один раз — чтобы получить перечисленные выше поля, — и не сохраняется в базе.

2.2. Пароли

Мы не используем пароли и, следовательно, никогда их не храним. Вход по коду на почту хранит только необратимый хэш одноразового кода, действующий несколько минут.

2.3. Сессия

После входа создаётся серверная сессия. В ней хранятся: ссылка на учётную запись, тип клиента (веб или мобильное приложение), время создания, срок истечения, время последнего использования, а также IP-адрес и строка User-Agent на момент входа — чтобы вы могли отличить свои сессии и чтобы мы могли обнаружить угон. Выход из аккаунта удаляет запись сессии.

2.4. Общий аккаунт: связывание способов входа

Сайт, Telegram Mini App и приложения для Android и iOS заводят учётные записи независимо. Чтобы заниматься везде в одном профиле, способы входа можно связать — только по вашему действию и только с подтверждением на сайте:

Если у обеих сторон уже есть свои учётные записи, сайт показывает сводки обеих (дата создания, число слов и выученных, монетки, серия дней, способы входа), и вы выбираете, какую оставить. Вторая удаляется целиком — так же, как при удалении учётной записи (раздел 7), а её способы входа переходят к оставленной. Словари, прогресс, монетки и серии двух учётных записей не объединяются. Список способов входа с подписями (адрес почты или имя от провайдера, модель телефона) виден вам на сайте в разделе «Способы входа». Отвязать отдельный способ входа пока нельзя; удалить учётную запись целиком со всеми способами входа можно в любой момент (раздел 7).

3. Технические данные и журналы

Как любой веб-сервер, наш записывает в журнал служебную информацию о каждом запросе: IP-адрес, дату и время, запрошенный адрес, код ответа, User-Agent и версию клиента (заголовок вида android/2.0.1). Эти записи нужны для диагностики сбоев и защиты от злоупотреблений, они не связываются с рекламными профилями и не передаются третьим лицам.

Мобильные приложения умеют отправлять отчёты о сбоях через сторонний сервис Sentry, но в опубликованных сборках эта отправка выключена. Что попало бы в отчёт и как это включается, описано в разделах 10.4 и 11.3.

4. Чего мы не собираем никогда

5. Кому передаются данные

ПолучательЧто получаетЗачем
Selectel (АО «Селектел», РФ) всё серверное хранилище: база данных, медиафайлы, журналы хостинг Сервиса. Обработчик по нашему поручению, в своих целях данные не использует
Yandex Cloud (ООО «Яндекс.Облако», РФ) серверное хранилище: база данных, медиафайлы, журналы хостинг Сервиса. Обработчик по нашему поручению, в своих целях данные не использует
Yandex Cloud Postbox адрес получателя и текст письма с одноразовым кодом доставка письма при входе по коду на почту. Пока вход по коду на почту отключён, Postbox ничего не получает
Яндекс.Метрика обезличенная статистика посещений сайта и Telegram Mini App — см. раздел 8.2 понять, какими разделами пользуются. В приложениях Android и iOS не используется
Google Play Services только device_id в облачную резервную копию Android — см. раздел 10.2 восстановление прогресса после переустановки. Только на Android
Apple iCloud Keychain только device_id в связку ключей вашего Apple ID — см. раздел 11.2 синхронизация прогресса между вашими устройствами. Только на iOS
Sentry (Functional Software, Inc., США) отчёты о сбоях приложений Android и iOS — см. разделы 10.4 и 11.3. Ваших слов, прогресса и идентификатора аккаунта в них нет диагностика падений. Обработчик по нашему поручению; данные хранятся за пределами России (США или ЕС — в зависимости от региона проекта). В вебе и Telegram Mini App не используется
Яндекс ID, VK ID, Mail.ru, Telegram факт вашего входа в Сервис только если вы сами выбрали этот способ входа — см. раздел 2

Мы не продаём данные и не передаём их рекламным сетям и брокерам данных. Иная передача возможна только по мотивированному требованию уполномоченных государственных органов в порядке, установленном законом.

6. Хранение и сроки

7. Ваши права и удаление данных

8. Сайты learntatar.ru и учим-татарский.рф

Оба адреса ведут на одно и то же веб-приложение и обрабатывают данные одинаково.

8.1. Cookie

CookieНазначениеСрок
sessionидентификатор серверной сессии после входа. Помечена HttpOnly — JavaScript её не читаетдо истечения сессии или выхода
csrfзащита от подделки межсайтовых запросов до истечения сессии или выхода
ui_*ваши предпочтения интерфейса (например, режим отображения)1 год
_ym_*cookie Яндекс.Метрики — см. ниже устанавливаются Яндексом

Cookie session, csrf и ui_* строго необходимы для работы сайта: без них невозможен вход и сохранение настроек.

8.2. Яндекс.Метрика

На сайте установлен счётчик Яндекс.Метрики № 109908367. Он собирает обезличенную статистику посещений: просмотренные страницы, источник перехода, тип устройства и браузера, разрешение экрана, приблизительный регион по IP-адресу.

Вебвизор включён. Помимо обычной статистики счётчик записывает действия на странице: движения курсора, клики, прокрутку и содержимое просматриваемых страниц. Ввод в поля форм Вебвизор по умолчанию маскирует и не записывает. Также включены карта кликов и отслеживание переходов по ссылкам.

Обработка этих данных на стороне Яндекса регулируется Политикой конфиденциальности Яндекса и условиями использования Яндекс.Метрики. Отказаться от сбора можно официальным дополнением-блокировщиком Яндекса, любым блокировщиком трекеров или отключением JavaScript. На доступность учебного контента это не влияет.

Других счётчиков и трекеров на сайте нет: ни Google Analytics, ни Meta Pixel, ни рекламных сетей.

8.3. Вход

Яндекс ID, VK ID, Mail.ru и код на e-mail доступны только на сайте (раздел 2). Просматривать учебный контент можно и без входа — учётная запись нужна только для личного словаря и прогресса.

9. Telegram Mini App

Mini App — то же самое веб-приложение, открытое внутри Telegram. Разделы 8.1 и 8.2 (cookie и Яндекс.Метрика) применяются к нему в полной мере.

Единственный способ входа в Mini App — ваш Telegram ID. Вход через Яндекс ID, VK ID, Mail.ru и код на почту внутри Telegram недоступен: эти кнопки там не показываются, а вход происходит автоматически при открытии приложения. Соответственно, ни один из этих провайдеров не получает от нас никаких данных и не узнаёт, что вы пользуетесь Сервисом.

9.1. Что передаёт Telegram

При открытии Mini App Telegram сам передаёт приложению подписанный блок initData. Мы проверяем его подпись и берём оттуда числовой идентификатор пользователя и имя с фамилией; username и язык интерфейса приходят, но не сохраняются. Мы не получаем ваш номер телефона, переписку, список контактов и не видим другие чаты. Приложение не может писать сообщения от вашего имени.

9.2. Что видит Telegram

Telegram знает, что вы открыли это Mini App, и выступает транспортом для всего трафика внутри своего окна. Обработка данных на стороне Telegram регулируется Политикой конфиденциальности Telegram.

10. Приложение для Android

Пакет com.learntatar, распространяется через Google Play.

10.1. Вход, идентификатор и момент его появления

Регистрации и экрана входа нет. Вход через Google, VK ID и других провайдеров в приложении не используется.

Идентификатор создаётся не при запуске, а при первом вашем действии, которое что-то сохраняет. Пока этого действия не было, приложение работает без учётной записи: каталог тем, карточки, озвучка и раздел «О приложении» доступны, и никаких запросов о вас на сервер не уходит — учётная запись просто не существует. Экраны «Мой словарь», «Профиль» и «Монетки» в этом состоянии вместо данных показывают приглашение начать.

Учётная запись появляется, когда вы добавляете в свой словарь слово или всю тему, отмечаете «сообщить о проблеме со словом» или нажимаете «Начать заниматься» на таком приглашении. В этот момент приложение генерирует на устройстве случайный device_id (UUIDv4) и создаёт по нему учётную запись на сервере. Сразу после этого оно показывает уведомление о том, что профиль создан, зачем он нужен и что удалить его можно в настройках, — со ссылкой на эту Политику. Идентификатор создаётся локально и случайно, не выводится из аппаратных свойств устройства и сам по себе не позволяет установить вашу личность; он заменяет логин с паролем и служит единственным ключом к вашему словарю и прогрессу.

Если приложение было установлено до 12 октября 2026 г., учётная запись могла быть создана ещё при первом запуске прежней версии; она сохраняется и работает как прежде, а удалить её можно в настройках (пункт 10.6).

10.2. Google Play Services (Block Store)

Чтобы прогресс пережил переустановку приложения или переход на новое устройство, device_id после создания учётной записи (пункт 10.1) сохраняется в Block Store — механизме Google Play Services, который кладёт небольшую порцию данных в облачную резервную копию Android, привязанную к вашему аккаунту Google. Обработка этой копии регулируется Политикой конфиденциальности Google. Резервное копирование можно отключить в настройках Android — приложение продолжит работать, но после переустановки начнёт новый профиль обучения. Пока учётной записи нет, в Block Store ничего не записывается; при удалении учётной записи (пункт 10.6) приложение стирает и эту запись.

10.3. Разрешения

РазрешениеЗачем
INTERNETзагрузка учебного материала и синхронизация словаря и прогресса с сервером
ACCESS_NETWORK_STATEопределить, что сеть вернулась, и дозагрузить недокачанный материал. Сведения о вашем операторе или Wi-Fi-сети приложение не читает

Других разрешений приложение не запрашивает.

10.4. Аналитика, реклама и отчёты о сбоях

В приложении нет рекламы, рекламных идентификаторов и аналитических SDK: не используются Google Analytics, Firebase, AppMetrica, Crashlytics и Яндекс.Метрика. Ваши экраны, нажатия и время в приложении мы не отслеживаем.

Для диагностики падений используется Sentry (Sentry Android SDK, без NDK). Отчёт формируется только когда приложение падает или ловит ошибку и содержит: тип ошибки и стек вызовов, версию приложения и сборки, версию Android, модель устройства, язык и часовой пояс системы, время события, техническую последовательность событий перед сбоем (в том числе адреса запросов к нашему API — без их содержимого) и случайный идентификатор установки, который генерирует сам SDK. Этот идентификатор не совпадает с device_id и нужен только для того, чтобы понять, сколько пользователей задел один и тот же сбой.

В отчёты не попадают: IP-адрес (приложение его не добавляет), ваши слова, словарь и прогресс, содержимое запросов и ответов, идентификатор аккаунта, почта, рекламные идентификаторы. Профили производительности и трассировки мы не собираем. Sentry обрабатывает отчёты по нашему поручению (раздел 5), они удаляются не позднее чем через 90 дней. В сборках, где адрес проекта Sentry не задан, SDK не запускается и не отправляет ничего. В опубликованной в Google Play сборке адрес не задан: отчёты о сбоях не собираются вообще, поэтому в разделе «Безопасность данных» в Google Play диагностика не заявлена. Если это изменится, мы обновим редакцию Политики и карточку приложения одновременно.

10.5. Данные на устройстве

Учебный материал (тексты, изображения, аудио) кэшируется в память приложения, чтобы работать без сети. Идентификатор и токен сессии хранятся в зашифрованном хранилище под защитой аппаратного Android Keystore и намеренно исключены из обычной резервной копии приложения. Удаление приложения стирает весь этот кэш; device_id в Block Store при этом может сохраниться — если он вам не нужен, удалите учётную запись из приложения (пункт 10.6): при удалении учётной записи приложение стирает и запись в Block Store.

10.6. Удаление учётной записи из приложения

«Профиль» → «Настройки» → «Удалить аккаунт». Пункт виден всегда, в том числе пока учётной записи ещё нет — в этом случае он честно говорит, что на сервере удалять нечего, и предлагает сбросить локальные настройки приложения.

Удаление подтверждается отдельным шагом с перечислением того, что будет удалено. Сначала удаляется учётная запись на сервере — вместе со словарём, историей повторений и прогрессом, монетками, серией дней и настройками; затем приложение стирает device_id и токен сессии из защищённого хранилища, включая запись в Block Store, и показывает экран «Аккаунт удалён». После этого приложение снова работает без учётной записи, а новая появится только по вашему следующему действию. Отменить удаление нельзя — восстановить данные не получится ни у вас, ни у нас. Скачанные учебные материалы остаются на устройстве, чтобы не выкачивать их заново.

11. Приложение для iOS

Bundle ID ru.learntatar.LearnTatar, распространяется через App Store.

11.1. Вход, идентификатор и момент его появления

Регистрации и экрана входа нет. Sign in with Apple, VK ID и другие провайдеры входа в приложении не используются.

Идентификатор создаётся не при запуске, а при первом вашем действии, которое что-то сохраняет. Пока этого действия не было, приложение работает без учётной записи: каталог тем, карточки, озвучка и раздел «О приложении» доступны, и никаких запросов о вас на сервер не уходит — учётная запись просто не существует. Экраны «Мой словарь», «Профиль» и «Монетки» в этом состоянии вместо данных показывают приглашение начать.

Учётная запись появляется, когда вы добавляете слово в свой словарь, отмечаете «сообщить о проблеме со словом» или нажимаете «Начать заниматься» на таком приглашении. В этот момент приложение генерирует на устройстве случайный device_id (UUIDv4) и создаёт по нему учётную запись на сервере. Сразу после этого оно показывает уведомление о том, что профиль создан, зачем он нужен и что удалить его можно в настройках, — со ссылкой на эту Политику. Идентификатор создаётся локально и случайно, не выводится из аппаратных свойств устройства и сам по себе не позволяет установить вашу личность; он заменяет логин с паролем и служит единственным ключом к вашему словарю и прогрессу.

Вместе с идентификатором приложение передаёт тип устройства — «iPhone» или «iPad»; имя, которое вы дали устройству, не передаётся.

Подключение к учётной записи сайта. «Профиль» → «Подключить общий аккаунт» (или «У меня уже есть аккаунт» на приглашении) открывает ввод кода, выданного сайтом (раздел 2.4). Это не вход: сторонних провайдеров в приложении нет, а подтверждение и выбор, какую учётную запись оставить, делаются на сайте. Если оставлена учётная запись сайта, этот iPhone продолжает работать с тем же device_id, но уже в ней. Если приложение закрыли до подтверждения, оно помнит номер заявки (не секрет и не данные обучения) и один раз проверяет её исход при следующем запуске.

11.2. iCloud Keychain

device_id хранится в связке ключей (Keychain) с признаком синхронизации, поэтому распространяется через iCloud Keychain на все устройства под вашим Apple ID — так прогресс переносится на новый iPhone или iPad. Токен сессии остаётся локальным и не синхронизируется. Синхронизацию можно отключить в настройках iCloud; приложение продолжит работать локально. Обработка данных в iCloud регулируется Политикой конфиденциальности Apple.

11.3. Разрешения, аналитика и отчёты о сбоях

Приложение не запрашивает у iOS никаких разрешений: ни геолокацию, ни уведомления, ни камеру, ни микрофон, ни доступ к фото или контактам. Отслеживания в смысле App Tracking Transparency нет — запрос на отслеживание не показывается, потому что мы не отслеживаем. Рекламы, рекламных идентификаторов и аналитических SDK в приложении нет: Яндекс.Метрика, Firebase и подобные не используются.

Для диагностики падений используется Sentry (Sentry Cocoa SDK). Отчёт формируется только когда приложение падает или ловит ошибку и содержит: тип ошибки и стек вызовов, версию приложения и сборки, версию iOS, модель устройства, язык и часовой пояс системы, время события, техническую последовательность событий перед сбоем (в том числе адреса запросов к нашему API — без их содержимого) и случайный идентификатор установки, который генерирует сам SDK. Этот идентификатор не совпадает с device_id и нужен только для того, чтобы понять, сколько пользователей задел один и тот же сбой.

В отчёты не попадают: IP-адрес (приложение его не добавляет), ваши слова, словарь и прогресс, содержимое запросов и ответов, идентификатор аккаунта, почта, рекламные идентификаторы. Профили производительности и трассировки мы не собираем. Sentry обрабатывает отчёты по нашему поручению (раздел 5), они удаляются не позднее чем через 90 дней. В сборках, где адрес проекта Sentry не задан, SDK не запускается и не отправляет ничего. В опубликованной в App Store сборке адрес не задан: отчёты о сбоях не собираются вообще, поэтому в карточке приложения в App Store диагностика не заявлена. Если это изменится, мы обновим редакцию Политики и карточку одновременно.

11.4. Данные на устройстве

Учебный материал кэшируется локально (в том числе в локальной базе SQLite) для работы без сети. Идентификатор и токен сессии хранятся в системной связке ключей. Удаление приложения стирает локальный кэш; device_id в iCloud Keychain при этом может сохраниться — если он вам не нужен, удалите запись в настройках связки ключей или удалите учётную запись из приложения (пункт 11.5): при удалении учётной записи приложение стирает и синхронизируемую запись тоже.

11.5. Удаление учётной записи из приложения

«Профиль» → «Настройки» → «Удалить аккаунт». Пункт виден всегда, в том числе пока учётной записи ещё нет — в этом случае он честно говорит, что на сервере удалять нечего, и предлагает сбросить локальные настройки приложения.

Удаление подтверждается отдельным шагом с перечислением того, что будет удалено. Сначала удаляется учётная запись на сервере — вместе со словарём, историей повторений и прогрессом, монетками, серией дней и настройками; затем приложение стирает device_id и токен сессии из связки ключей, включая синхронизируемую запись в iCloud Keychain, и показывает экран «Аккаунт удалён». После этого приложение снова работает без учётной записи, а новая появится только по вашему следующему действию. Отменить удаление нельзя — восстановить данные не получится ни у вас, ни у нас. Скачанные учебные материалы остаются на устройстве, чтобы не выкачивать их заново.

12. Дети, безопасность, изменения, контакты

12.1. Дети

Сервис не адресован детям младше 13 лет и не предназначен для сбора данных о них. Мы сознательно не собираем персональные данные детей. Если вам стало известно, что ребёнок передал нам такие данные, напишите нам — мы их удалим.

12.2. Безопасность

Весь обмен данными идёт только по HTTPS (TLS 1.2/1.3). Пароли не используются и не хранятся; одноразовые коды хранятся только в виде необратимого хэша. Секреты мобильных клиентов лежат в системных защищённых хранилищах (Android Keystore, iOS Keychain). Доступ к базе данных ограничен внутренней сетью и закрыт для публичного интернета.

12.3. Правовые основания

Мы обрабатываем данные для исполнения соглашения с вами (предоставление функциональности Сервиса) и в силу нашего законного интереса в поддержании работоспособности и безопасности Сервиса. Вход через соцсети и установка Яндекс.Метрики осуществляются с вашего согласия, которое вы можете отозвать способами, описанными в разделах 7 и 8.2. В приложениях для Android и iOS учётная запись создаётся вашим действием — добавлением слова в словарь, отметкой о проблеме со словом или нажатием «Начать заниматься» (пункты 10.1 и 11.1); это же действие выражает ваше согласие на обработку связанных с ней данных обучения, а отозвать его можно удалением учётной записи (раздел 7, пункты 10.6 и 11.5). Мы не принимаем решений, влекущих юридические последствия, на основе автоматизированной обработки.

12.4. Изменения Политики

Мы можем обновлять эту Политику — например, при появлении новых функций или платформ. Актуальная редакция всегда доступна по этому адресу, дата указана вверху страницы. О существенных изменениях мы сообщим в самом Сервисе.

12.5. Контакты

Вопросы, запросы на удаление данных, жалобы: support@learntatar.ru

This Policy explains what data the Tatar-language learning service "Учим татарский" (LearnTatar) processes, and why.

Scope

ProductAddress / identifier
Websitelearntatar.ru
Websiteучим-татарский.рф
Telegram Mini Appthe "Учим татарский" app inside Telegram
Android app"Учим татарский", package com.learntatar (Google Play)
iOS app"Учим татарский", bundle ID ru.learntatar.LearnTatar (App Store)

Collectively, the "Service". Sections 1–7 apply to every platform; sections 8–11 cover what differs per platform. For any data-related question: support@learntatar.ru.

In short. The Android and iOS apps have no sign-up, no ads, no analytics and no trackers — only a random identifier the app generates on your own device. That identifier appears not at launch but the moment you first save something (add a word to your dictionary or report a problem with one), and the account can be deleted from inside the app, in its settings. The website offers sign-in via Yandex, VK ID, Mail.ru or an e-mail code, and carries a Yandex.Metrica counter. In the Telegram Mini App the only sign-in is your Telegram ID — no third-party providers there. We never request access to your feed, friends, photos or messages from any social network, and we never post anything on your behalf.

1. Learning data (all platforms)

So that your progress survives restarts and stays the same across your devices, the following is stored on the server against your account:

You create this data yourself while studying. We do not enrich it from external sources and do not use it for advertising profiles.

2. Sign-in: what each provider passes us

An account exists only to tell your dictionary apart from someone else's. The sign-in method depends on the platform. Below is what we request from the provider and what we actually store.

Method Available on What the provider returns to us What we store
Yandex ID website only Yandex user ID, display name (or real name), primary e-mail address provider "yandex", the Yandex ID, name, e-mail
VK ID website only the only scope we request is email. Returned: VK user ID, first name, last name, e-mail address provider "vk", the VK ID, "First Last", e-mail
Mail.ru website only Mail.ru user ID, first name, last name, nickname, e-mail address provider "mail", the Mail.ru ID, name, e-mail
E-mail code website only you type the address yourself; no provider involved the e-mail address; a hash of the one-time code (SHA-256, never the code itself), an attempt counter, the request IP address and an expiry. The row is deleted as soon as the code is used or expires
Telegram Telegram Mini App only
(the only sign-in method there)
Telegram passes a signed initData block: numeric user ID, first name, last name, username, interface language provider "telegram", the numeric Telegram ID, "First Last". Username, language and e-mail are not stored
Device sign-in Android, iOS no external provider involved provider "device" and a random device_id (UUIDv4) generated by the app on your device; the platform (Android or iOS) and the device model — e.g. "iPhone" or "Samsung Galaxy A54" — to label the phone in your list of sign-in methods (section 2.4). We do not receive the name you gave the device

2.1. What we never ask social networks for

No provider grants us access to your feed, friends and subscriptions, photos, messages, groups, phone number or date of birth. We receive no permission to post, send messages or take any action on your behalf. We do not store profile pictures. The provider's access token is used once — to fetch the fields listed above — and is not saved to the database.

2.2. Passwords

We use no passwords and therefore never store any. E-mail code sign-in stores only an irreversible hash of a one-time code valid for a few minutes.

2.3. Sessions

Signing in creates a server-side session holding: a reference to your account, the client type (web or mobile app), creation time, expiry, last-used time, plus the IP address and User-Agent string at sign-in — so you can tell your sessions apart and so we can detect hijacking. Signing out deletes the session row.

2.4. Shared account: linking sign-in methods

The website, the Telegram Mini App and the Android and iOS apps create accounts independently. To study everywhere in one profile you can link sign-in methods — only by your own action and only with confirmation on the website:

If both sides already have accounts, the website shows a summary of each (creation date, words and words learned, coins, day streak, sign-in methods) and you choose which one to keep. The other one is deleted entirely — exactly as in account deletion (section 7) — and its sign-in methods move to the kept account. Dictionaries, progress, coins and streaks of the two accounts are not merged. You can see your sign-in methods with their labels (e-mail address or name from the provider, phone model) on the website under "Sign-in methods". Detaching a single sign-in method is not available yet; you can delete the whole account with all its sign-in methods at any time (section 7).

3. Technical data and logs

Like any web server, ours writes request metadata to a log: IP address, date and time, requested path, response code, User-Agent and client version (a header such as android/2.0.1). These records exist for fault diagnosis and abuse prevention; they are not linked to advertising profiles and are not shared with third parties.

The mobile apps are able to send crash reports through a third-party service, Sentry, but this is switched off in the published builds. What a report would contain and how it is enabled is described in 10.4 and 11.3.

4. What we never collect

5. Who data is shared with

RecipientWhat they receiveWhy
Selectel (Selectel JSC, Russia) all server-side storage: database, media files, logs hosting. A processor acting on our instructions; it does not use the data for its own purposes
Yandex Cloud (Yandex.Cloud LLC, Russia) server-side storage: database, media files, logs hosting. A processor acting on our instructions; it does not use the data for its own purposes
Yandex Cloud Postbox the recipient address and the body of the one-time-code e-mail delivering the e-mail sign-in code. While e-mail code sign-in is switched off, Postbox receives nothing
Yandex.Metrica anonymised website and Telegram Mini App usage statistics — see 8.2 understanding which sections get used. Not used in the Android and iOS apps
Google Play Services only the device_id, into the Android cloud backup — see 10.2 restoring progress after a reinstall. Android only
Apple iCloud Keychain only the device_id, into your Apple ID keychain — see 11.2 syncing progress across your devices. iOS only
Sentry (Functional Software, Inc., USA) crash reports from the Android and iOS apps — see 10.4 and 11.3. They contain none of your words, progress or account identifier crash diagnostics. A processor acting on our instructions; the data is stored outside Russia (in the USA or the EU, depending on the project region). Not used on the web or in the Telegram Mini App
Yandex ID, VK ID, Mail.ru, Telegram the fact that you signed in to the Service only if you chose that sign-in method — see section 2

We do not sell data and do not share it with ad networks or data brokers. Other disclosure is possible only upon a lawful, reasoned request from a competent public authority.

6. Storage and retention

7. Your rights and data deletion

8. Websites learntatar.ru and учим-татарский.рф

Both addresses serve the same web application and handle data identically.

8.1. Cookies

CookiePurposeLifetime
sessionserver-side session identifier after sign-in. Marked HttpOnly, so JavaScript cannot read ituntil the session expires or you sign out
csrfcross-site request forgery protection until the session expires or you sign out
ui_*your interface preferences (e.g. display mode) 1 year
_ym_*Yandex.Metrica cookies — see below set by Yandex

The session, csrf and ui_* cookies are strictly necessary: without them sign-in and preference storage cannot work.

8.2. Yandex.Metrica

The website carries Yandex.Metrica counter no. 109908367. It gathers anonymised visit statistics: pages viewed, referral source, device and browser type, screen resolution, and an approximate region derived from the IP address.

Session Replay (Webvisor) is enabled. Beyond ordinary statistics, the counter records on-page behaviour: cursor movement, clicks, scrolling and the content of the pages you view. Input into form fields is masked by default and is not recorded. Click maps and outbound-link tracking are also enabled.

Yandex's handling of this data is governed by the Yandex Privacy Policy and the Yandex.Metrica terms of use. You can opt out via Yandex's official opt-out add-on, any tracker blocker, or by disabling JavaScript. None of this affects access to the learning content.

There are no other counters or trackers on the site: no Google Analytics, no Meta Pixel, no ad networks.

8.3. Sign-in

Yandex ID, VK ID, Mail.ru and the e-mail code are available on the website only (section 2). You can browse the learning content without signing in — an account is needed only for your personal dictionary and progress.

9. Telegram Mini App

The Mini App is the same web application opened inside Telegram. Sections 8.1 and 8.2 (cookies and Yandex.Metrica) apply to it in full.

Your Telegram ID is the only sign-in method in the Mini App. Yandex ID, VK ID, Mail.ru and the e-mail code are not available inside Telegram: those buttons are not shown there, and sign-in happens automatically when the app opens. Accordingly, none of those providers receives any data from us or learns that you use the Service.

9.1. What Telegram passes us

When the Mini App opens, Telegram itself passes a signed initData block. We verify its signature and take the numeric user ID and the first and last name from it; the username and interface language arrive but are not stored. We do not receive your phone number, messages or contact list, and we cannot see other chats. The app cannot send messages on your behalf.

9.2. What Telegram sees

Telegram knows you opened this Mini App and acts as the transport for all traffic inside its window. Telegram's own handling is governed by the Telegram Privacy Policy.

10. Android app

Package com.learntatar, distributed via Google Play.

10.1. Sign-in, the identifier, and when it appears

There is no sign-up and no sign-in screen. Sign-in with Google, VK ID and other providers is not used in the app.

The identifier is not created at launch, but on your first action that saves something. Until then the app works without an account: the topic catalogue, cards, audio and the "About" section all work, and no request about you reaches the server — the account simply does not exist. In that state the "My dictionary", "Profile" and "Coins" screens show an invitation to start instead of data.

The account appears when you add a word or a whole topic to your dictionary, flag a word with "report a problem", or tap "Start learning" on such an invitation. At that moment the app generates a random device_id (UUIDv4) on the device and creates an account for it on the server. Right after that it shows a notice explaining that a profile has been created, what it is for and that it can be deleted in the settings — with a link to this Policy. The identifier is generated locally and at random, is not derived from any hardware property of the device, and on its own does not reveal your identity; it replaces a username and password and is the only key to your dictionary and progress.

If the app was installed before 12 October 2026, the account may have been created on the first launch of an earlier version; it is kept and works as before, and you can delete it in the settings (section 10.6).

10.2. Google Play Services (Block Store)

So that progress survives a reinstall or a move to a new device, the device_id is saved, once the account exists (section 10.1), to Block Store, a Google Play Services mechanism that places a small piece of data into the Android cloud backup tied to your Google account. Google's handling of that copy is governed by the Google Privacy Policy. You can turn backup off in Android settings; the app keeps working, but a reinstall will start a fresh learning profile. Nothing is written to Block Store while no account exists, and deleting the account (section 10.6) erases this entry as well.

10.3. Permissions

PermissionPurpose
INTERNETdownloading learning material and syncing your dictionary and progress with the server
ACCESS_NETWORK_STATEdetecting that connectivity is back in order to finish an interrupted download. The app does not read your carrier or Wi-Fi network details

The app requests no other permissions.

10.4. Analytics, advertising and crash reports

The app contains no advertising, advertising identifiers or analytics SDKs: no Google Analytics, no Firebase, no AppMetrica, no Crashlytics, no Yandex.Metrica. We do not track your screens, taps or time in the app.

For crash diagnostics the app uses Sentry (Sentry Android SDK, without NDK). A report is produced only when the app crashes or catches an error and contains: the error type and stack trace, the app and build version, the Android version, the device model, the system language and time zone, the event time, the technical sequence of events leading up to the crash (including the URLs of requests to our API, without their contents) and a random installation identifier generated by the SDK itself. That identifier is not the same as your device_id; its only purpose is to tell how many users a given crash affected.

Reports do not include: your IP address (the app does not attach it), your words, dictionary or progress, request and response bodies, your account identifier, your e-mail, or advertising identifiers. We collect no performance profiles and no traces. Sentry processes the reports on our instructions (section 5) and they are deleted no later than after 90 days. In builds where no Sentry project address is configured the SDK does not start and sends nothing. The build published on Google Play has no address configured: no crash reports are collected at all, so no diagnostics are declared in the Google Play Data safety section. Should that change, we will update this Policy and the store listing at the same time.

10.5. Data on the device

Learning material (text, images, audio) is cached in app storage so the app works offline. The identifier and session token are held in encrypted storage protected by the hardware-backed Android Keystore and are deliberately excluded from the ordinary app backup. Uninstalling the app erases this cache; the device_id in Block Store may persist — if you do not want it, delete your account from the app (section 10.6), which erases the Block Store entry as well.

10.6. Deleting your account from the app

"Profile" → "Settings" → "Delete account". The item is always visible, including while no account exists yet — in that case it says plainly that there is nothing to delete on the server and offers to reset the app's local preferences instead.

Deletion takes a separate confirmation step that lists what will be removed. The account on the server goes first — together with the dictionary, review history and progress, coins, day streak and settings; then the app erases the device_id and the session token from protected storage, including the Block Store entry, and shows an "Account deleted" screen. After that the app works without an account again, and a new one appears only on your next action. Deletion cannot be undone: neither you nor we can restore the data. Downloaded learning material stays on the device so you do not have to fetch it again.

11. iOS app

Bundle ID ru.learntatar.LearnTatar, distributed via the App Store.

11.1. Sign-in, the identifier, and when it appears

There is no sign-up and no sign-in screen. Sign in with Apple, VK ID and other sign-in providers are not used in the app.

The identifier is not created at launch, but on your first action that saves something. Until then the app works without an account: the topic catalogue, cards, audio and the "About" section all work, and no request about you reaches the server — the account simply does not exist. In that state the "My dictionary", "Profile" and "Coins" screens show an invitation to start instead of data.

The account appears when you add a word to your dictionary, flag a word with "report a problem", or tap "Start learning" on such an invitation. At that moment the app generates a random device_id (UUIDv4) on the device and creates an account for it on the server. Right after that it shows a notice explaining that a profile has been created, what it is for and that it can be deleted in the settings — with a link to this Policy. The identifier is generated locally and at random, is not derived from any hardware property of the device, and on its own does not reveal your identity; it replaces a username and password and is the only key to your dictionary and progress.

Together with the identifier the app sends the device type — "iPhone" or "iPad"; the name you gave the device is not sent.

Connecting to a website account. "Profile" → "Connect shared account" ("Подключить общий аккаунт", or "У меня уже есть аккаунт" on an invitation) opens entry of a code issued by the website (section 2.4). This is not a sign-in: there are no third-party providers in the app, and the confirmation and the choice of which account to keep happen on the website. If the website account is kept, this iPhone carries on with the same device_id, now inside that account. If the app is closed before confirmation, it remembers the request number (not a secret and not learning data) and checks its outcome once on the next launch.

11.2. iCloud Keychain

The device_id is stored in the Keychain marked as synchronisable, so it propagates via iCloud Keychain to all devices under your Apple ID — this is how progress moves to a new iPhone or iPad. The session token stays local and is not synced. You can disable syncing in iCloud settings; the app keeps working locally. Apple's handling of iCloud data is governed by the Apple Privacy Policy.

11.3. Permissions, analytics and crash reports

The app requests no iOS permissions at all: no location, no notifications, no camera, no microphone, no photo or contact access. There is no tracking in the App Tracking Transparency sense — no tracking prompt is shown, because we do not track. The app contains no advertising, advertising identifiers or analytics SDKs: no Yandex.Metrica, no Firebase, nothing of that kind.

For crash diagnostics the app uses Sentry (Sentry Cocoa SDK). A report is produced only when the app crashes or catches an error and contains: the error type and stack trace, the app and build version, the iOS version, the device model, the system language and time zone, the event time, the technical sequence of events leading up to the crash (including the URLs of requests to our API, without their contents) and a random installation identifier generated by the SDK itself. That identifier is not the same as your device_id; its only purpose is to tell how many users a given crash affected.

Reports do not include: your IP address (the app does not attach it), your words, dictionary or progress, request and response bodies, your account identifier, your e-mail, or advertising identifiers. We collect no performance profiles and no traces. Sentry processes the reports on our instructions (section 5) and they are deleted no later than after 90 days. In builds where no Sentry project address is configured the SDK does not start and sends nothing. The build published on the App Store has no address configured: no crash reports are collected at all, so no diagnostics are declared on the product page. Should that change, we will update this Policy and the product page at the same time.

11.4. Data on the device

Learning material is cached locally (including in a local SQLite database) so the app works offline. The identifier and session token live in the system Keychain. Uninstalling the app erases the local cache; the device_id in iCloud Keychain may persist — if you do not want it, delete the entry in your keychain settings, or delete your account from the app (section 11.5), which erases the synchronised entry as well.

11.5. Deleting your account from the app

"Profile" → "Settings" → "Delete account". The item is always visible, including while no account exists yet — in that case it says plainly that there is nothing to delete on the server and offers to reset the app's local preferences instead.

Deletion takes a separate confirmation step that lists what will be removed. The account on the server goes first — together with the dictionary, review history and progress, coins, day streak and settings; then the app erases the device_id and the session token from the Keychain, including the synchronised iCloud Keychain entry, and shows an "Account deleted" screen. After that the app works without an account again, and a new one appears only on your next action. Deletion cannot be undone: neither you nor we can restore the data. Downloaded learning material stays on the device so you do not have to fetch it again.

12. Children, security, changes, contact

12.1. Children

The Service is not directed at children under 13 and is not designed to collect data about them. We do not knowingly collect personal data from children. If you believe a child has provided us with such data, contact us and we will delete it.

12.2. Security

All traffic runs over HTTPS only (TLS 1.2/1.3). No passwords are used or stored; one-time codes are kept only as an irreversible hash. Mobile client secrets live in the platform's protected stores (Android Keystore, iOS Keychain). Database access is restricted to the internal network and closed to the public internet.

12.3. Legal bases

We process data to perform our agreement with you (delivering the Service's functionality) and on the basis of our legitimate interest in keeping the Service working and secure. Social sign-in and the Yandex.Metrica counter operate on your consent, which you can withdraw by the means described in sections 7 and 8.2. In the Android and iOS apps the account is created by an action of yours — adding a word to your dictionary, reporting a problem with a word, or tapping "Start learning" (sections 10.1 and 11.1); that same action expresses your consent to the processing of the learning data attached to it, and you can withdraw it by deleting the account (section 7, subsections 10.6 and 11.5). We make no decisions with legal effects based on automated processing.

12.4. Changes to this Policy

We may update this Policy, for instance when new features or platforms ship. The current version is always available at this address and its date is shown at the top of the page. We will announce material changes inside the Service.

12.5. Contact

Questions, deletion requests, complaints: support@learntatar.ru