Эта страница переведена машинно с японского оригинала. При расхождениях приоритет имеет японская версия.
Коротко
- Аккаунтов нет. Логин, адрес электронной почты, имя и номер телефона мы не собираем ни в каком виде.
- Рекламы нет вообще. Веб-аналитика (Google Analytics) используется для понимания того, как используется сайт, но геолокация, отредактированный звук и записи путешествий в аналитику никогда не передаются (подробнее ниже).
- На устройстве хранится один анонимный случайный идентификатор (ID устройства). Он никак не указывает на то, кто вы.
- Если вы просто слушаете, геолокация на сервер не отправляется. Позиция передаётся только тогда, когда вы явно нажимаете PUBLISH (публикация), и когда вы делитесь путешествием.
- Путешествие (запись перемещения) содержит GPS-трек. Если поделиться им, можно вычислить дом или работу. Публикация всегда происходит по явному действию, и перед этим всегда показывается предупреждение.
ID устройства
При первом запуске генерируется один случайный UUID (v4) и сохраняется в localStorage устройства под ключом ptg:device-id. Это не аутентификация, а анонимный идентификатор, нужный только для привязки авторства опубликованного контента и для защиты сервера от злоупотреблений (ограничение частоты запросов). Он никак не связан с именем, электронной почтой или рекламными идентификаторами.
Если очистить хранилище браузера или использовать другой браузер или устройство, будет присвоен новый ID (в приватном режиме и подобных окружениях, где хранилище недоступно, при каждом открытии страницы создаётся одноразовый ID). При экспорте и импорте резервной копии этот ID переносится вместе с остальными данными.
Что отправляется на сервер
Отправка данных происходит только в следующих случаях. Ниже перечислено, что именно отправляется и что сохраняется.
- 1. Публикация (PUBLISH)
-
Отправка происходит только тогда, когда вы явно выбираете PUBLISH в EDIT MENU. Отправляется:
- слой (AREA / SPOT), ID ячейки и её координаты;
- отредактированный паттерн (сами шаги, высота тона, разрешение и прочее содержимое);
- TRIBE (RED / GREEN / BLUE);
- версия генератора;
- ключ идемпотентности (для защиты от дублей при повторной отправке);
- ID устройства;
- токен Cloudflare Turnstile (для проверки на бота);
- если геолокация получена — сама текущая позиция (широта, долгота, точность, время получения).
На сервере (Cloudflare D1) сохраняется: весь перечисленный набор данных ревизии (слой, ID ячейки, координаты, порядковый номер, ID устройства, паттерн, версия генератора, ключ идемпотентности, время создания, TRIBE), позиция (широта, долгота, точность), флаг того, была ли позиция подтверждена как находящаяся внутри ячейки, а также код страны, определённый Cloudflare по IP-адресу подключения. Код страны только записывается — на его основании ничего не отклоняется.
Позиция используется для проверки того, что вы действительно находитесь внутри ячейки, и после этой проверки широта и долгота сохраняются. Если геолокация не была получена, позиция не отправляется и запись помечается как «не подтверждено».
- 2. Маяк прослушивания
-
Если во время воспроизведения вы задерживаетесь в одной ячейке достаточно долго, отправляется небольшой сигнал о том, что «эта ячейка была реально прослушана». Он сбрасывает таймер выветривания (decay) и используется для тепловой карты следов.
Отправляется: слой и ID прослушанной ячейки, а также ID устройства.
Сохраняется: только агрегат по ячейке (слой, ID ячейки, координаты, суммарное число прослушиваний, время последнего прослушивания). ID устройства в базу данных не записывается — он используется только в памяти во время обработки запроса для ограничения частоты запросов и исчезает по завершении запроса. Записи о том, кто и где слушал, не остаётся.
Что показывается на карте: тепловая карта следов никогда не отображается детальнее уровня AREA (около 250 м). Следы уровня SPOT (около 70 м) попадают на карту только суммированными в содержащую их AREA, а API вообще отказывается отдавать их с точностью до SPOT (приближение карты этого не меняет). Агрегаты по SPOT по-прежнему записываются для таймера выветривания, но не показываются с точностью, которую можно было бы прочитать как «кто-то стоял по этому адресу».
То же самое касается времени: время «последнего прослушивания», которое отдаётся наружу, округляется до суток (00:00 UTC этого дня). С точностью до миллисекунды это была бы запись о том, что «кто-то был в этой ячейке в 14:32». Выветривание всё равно считается по дням, поэтому округление никак не меняет то, что вы слышите. (Время PUBLISH не округляется — публикация это осознанное действие с указанием авторства.)
- 3. Точка приёма жалоб
-
В приложении нет кнопки жалобы (опубликованные ячейки не содержат произвольного текста, изображений или аудио, поэтому реального вреда, от которого нужно защищать пользователей жалобой, практически нет — кнопка была убрана). Сама точка входа оставлена для обращений через операторов или контактную форму, а также на будущее — для жалоб на путешествия. Если она используется, отправляется: слой и ID соответствующей ячейки, ID устройства и (если указана) текстовая причина. Сохраняется: то же самое плюс время получения и статус обработки. Подробнее — в справке.
- 4. Публикация путешествия
-
Путешествие целиком содержит GPS-трек. Получивший ссылку сможет полностью воспроизвести маршрут, по которому вы шли. По нему можно вычислить дом, работу или маршрут до работы.
Публикация всегда происходит только по вашему явному действию, и перед ней всегда показывается диалог с предупреждением о конфиденциальности. Просто запись или просто сохранение на устройстве ничего никуда не отправляют.
Отправляется: сжатая gzip последовательность событий путешествия (GPS-трек и трек прослушивания, снимки паттерна и тембра по каждой ячейке, переходы по тапу на карте, редактирования во время записи, PLAY / STOP), а также название, время начала, длительность, количество событий, ID устройства и токен Turnstile.
Сохраняется: само содержимое путешествия — в Cloudflare R2, метаданные (ID, название, время начала, длительность, количество событий, размер, ID устройства, время создания, статус отзыва) — в D1. ID устройства здесь сохраняется намеренно, чтобы при злоупотреблении можно было модерировать контент.
ID для общего доступа — случайная строка из 12 символов. Воспроизвести путешествие может любой, у кого есть ссылка.
- 5. Загрузка мира
-
Это запросы, загружающие опорное время для синхронизации воспроизведения и уже опубликованные данные видимой области. ID устройства при этом не отправляется. Передаются только координаты нужной области. Тем не менее, поскольку это сетевой запрос, Cloudflare получает IP-адрес подключения и время запроса.
Сроки хранения и удаление
- Опубликованное содержимое накапливается как историю только с добавлением записей. Даже если содержимое перезаписывается, прежние ревизии остаются, а текущее содержимое становится «опубликованной головой».
- Отзыв — это мягкое удаление. Если ревизия отозвана по жалобе или решению оператора, она помечается как отозванная, перестаёт звучать, а «опубликованная голова» пересобирается из оставшихся ревизий. Сама строка истории не удаляется.
- При отзыве опубликованного путешествия метаданные помечаются как отозванные, а сам файл (в R2) действительно удаляется. После этого он недоступен даже по прямой ссылке.
- Если ячейку никто не публикует и никто не слушает, её содержимое после 14-дневной отсрочки в течение 90 дней постепенно возвращается к исходному сгенерированному состоянию (выветривание).
Что остаётся на устройстве (не отправляется, пока вы не поделились)
- Путешествия (записи) — IndexedDB (
ptg-journeys). Пока вы ими не поделились, они остаются только на этом устройстве. - Неопубликованные черновики — localStorage. Не отправляются, пока вы не нажмёте PUBLISH.
- TRIBE, язык, настройки Movement FX, громкость — localStorage.
- OUTPUT EQ — localStorage. Это настройка мониторинга, которая никогда не попадает ни в записи, ни на сервер.
- Файлы резервных копий — экспорт и импорт полностью происходят на вашем устройстве. На сервер они не отправляются.
- ID устройства — localStorage (
ptg:device-id).
Если очистить данные сайта в браузере, всё перечисленное исчезнет (уже опубликованное содержимое и уже расшаренные путешествия при этом остаются на сервере).
О геолокации
- Для получения геолокации нужно разрешение браузера, и она начинает собираться только после нажатия кнопки GPS.
- Полученная позиция в основном обрабатывается прямо на устройстве (определение текущей ячейки, слежение карты за позицией, влияние на звук).
- На сервер позиция передаётся только в двух случаях: вместе с публикацией (PUBLISH) и в составе трека расшаренного путешествия.
- При обычном воспроизведении и просмотре карты позиция не отправляется.
Сторонние сервисы, к которым обращение происходит уже при открытии страницы
К перечисленным ниже сервисам подключение происходит просто при загрузке страницы, без каких-либо действий с вашей стороны. Каждому из них передаётся ваш IP-адрес и базовая информация о браузере (например, User-Agent).
- Cloudflare (хостинг, API, хранение данных)
-
Отвечает за доставку сайта, работу API, а также хранение данных в D1 и R2. Передаётся IP-адрес, страна подключения и журнал запросов.
Политика конфиденциальности Cloudflare - Cloudflare Turnstile (проверка на бота)
-
Защита от ботов, используется только при PUBLISH и при публикации путешествия. Скрипт загружается только при первом входе в режим EDIT — если вы просто слушаете, он не загружается.
Политика конфиденциальности Cloudflare - CARTO (тайлы карты) / OpenStreetMap (данные карты)
-
Фоновое изображение карты загружается с серверов CARTO. Вместе с IP-адресом передаётся информация о том, какая область карты отображается (координаты и масштаб тайла). Сами данные карты происходят из OpenStreetMap.
Политика конфиденциальности CARTO / Политика конфиденциальности OSM Foundation - Google Fonts
-
Само приложение загружает пиксельный шрифт для интерфейса. Информационные страницы — справка, конфиденциальность, пожертвования (включая эту страницу) — также загружают шрифт основного текста (LINE Seed JP). В обоих случаях загрузка идёт с
fonts.googleapis.com/fonts.gstatic.com, и Google получает ваш IP-адрес и информацию о браузере.
Политика конфиденциальности Google - unpkg (CDN)
-
Таблица стилей библиотеки карт Leaflet загружается с
unpkg.com. Передаётся IP-адрес и информация о браузере.
- Cloudflare Zaraz / Google Analytics (веб-аналитика)
- Загружаются для измерения использования сайта только при наличии согласия. Подробности и то, где проходит граница (например, геолокация не передаётся), описаны в разделе Веб-аналитика.
Кроме перечисленного, никаких других внешних подключений в приложение не встроено. Здесь нет рекламных сетей, трекинг-пикселей социальных сетей и инструментов A/B-тестирования.
Веб-аналитика (Google Analytics)
Для понимания того, как используется сайт в целом, применяется Google Analytics 4 (GA4). Она подключена через Cloudflare Zaraz — код аналитики не встроен напрямую в код приложения.
Геолокация (GPS), отредактированный звук и содержимое путешествий никогда не отправляются в аналитику.
Аналитика работает на уровне «страница была просмотрена» — не глубже. ID ячейки, широта и долгота, содержимое путешествий, а также упомянутый выше ID устройства (ptg:device-id) никогда не передаются как параметры событий или пользовательские измерения аналитики. Они попадают только в наши собственные API, перечисленные выше.
Что собирает аналитика
- Просмотры страниц (какая страница, когда и сколько раз была открыта; про обработку URL — ниже)
- Источник перехода (откуда пришёл посетитель)
- Приблизительный регион, определённый по IP-адресу (уровень страны/региона, не точная позиция)
- Общая информация об устройстве и браузере: тип, размер экрана, язык и т. п.
-
События действий — но только заранее определённого вида и набора вариантов:
- переключение режима (PLAY / EDIT);
- начало и остановка воспроизведения;
- начало и окончание записи путешествия, начало и окончание воспроизведения записи, успех или неудача публикации;
- успех или неудача PUBLISH и то, затронут один слой или два;
- переключение режима отображения STAIN на карте, выбор пресета OUTPUT EQ, смена TRIBE, экспорт и импорт резервной копии.
В этих событиях передаются только заранее заданные варианты и небольшие числа из перечисленного выше. Реализация не позволяет передавать произвольный текст или идентификаторы.
Как обрабатывается URL — по-разному для информационных страниц и самого приложения
Чтобы понимать, какая страница была прочитана, мы записываем URL, но на сайте есть два принципиально разных типа страниц, поэтому обработка URL для них различается.
- Информационные страницы (эта страница, справка, пожертвования)
-
URL записывается как есть (
/help/,/privacy/,/support/). Это нужно, чтобы понимать, какая именно информационная страница читается. Эти URL не содержат геолокации — по ним видно только то, какая страница была открыта. - Само приложение
-
URL приложения содержит текущую ячейку (
/{zone}/{area}/{spot}) — сам URL является координатой. Поэтому перед отправкой в аналитику часть с ячейкой заменяется на постоянное значение/(корень сайта). В записи остаётся только факт «приложение было открыто», и эта координата в аналитику никогда не передаётся.При ходьбе URL в адресной строке меняется при переходе между ячейками, но эти изменения в аналитику не отправляются.
Таким образом, фиксируется только то, «какая из информационных страниц была прочитана», а то, «где вы находились» в самом приложении, восстановить ни из одной аналитической записи невозможно. Обещание из начала раздела (геолокация, отредактированный звук и содержимое путешествий никогда не отправляются в аналитику) обеспечивается именно этим разделением.
О согласии
Управление согласием на аналитику осуществляет инструмент согласия Cloudflare Zaraz. Для посетителей из соответствующих регионов согласие запрашивается до того, как аналитика начинает работать. Изменить или отозвать согласие можно в любой момент через тот же баннер согласия (его можно снова открыть по ссылке настроек на экране). После отзыва аналитика перестаёт собирать данные.
Cookie и идентификаторы, которые использует аналитика
Google Analytics использует cookie (например, _ga) или эквивалентный локальный идентификатор, чтобы суммировать посещения с одного и того же браузера. Эти идентификаторы полностью отделены от собственного ID устройства приложения (ptg:device-id) и никак с ним не связаны. ID устройства не передаётся в аналитику, а идентификаторы аналитики не привязываются к данным мира этого приложения.
Дополнительные ссылки: Политика конфиденциальности Google / Как Google Analytics использует данные / Политика конфиденциальности Cloudflare (Zaraz)
Cookie
Собственное состояние приложения (черновики, настройки, путешествия и т. д.) хранится не в cookie, а в localStorage / sessionStorage / IndexedDB. Cookie используются только описанной выше веб-аналитикой и связанным с ней управлением согласием. Другие сторонние сервисы также могут самостоятельно устанавливать свои cookie.
Использование детьми
Аккаунтов и платежей нет, имя и контактные данные не собираются. Тем не менее приложение работает с геолокацией, поэтому если им пользуется ребёнок, решение об использовании должно приниматься под контролем родителей. Особенно это касается публикации путешествий — маршрут передаётся получателю в неизменном виде.
Запросы на удаление и исправление
- Об опубликованном содержимом — самостоятельно отозвать его нельзя, но любой, кто физически находится на месте, может перезаписать его через LOAD SEED → PUBLISH. Если никто не заходит в ячейку, она сама постепенно вернётся к исходному сгенерированному звуку в результате выветривания (справка). Если этого недостаточно, свяжитесь с нами по контактам ниже.
- О расшаренном путешествии, а также в случаях, не описанных выше, свяжитесь с нами по контактам ниже. Если вы сообщите ID общего доступа, а также место и примерное время публикации, нам будет проще найти нужную запись.
- ID устройства — это анонимное случайное значение, и у нас нет способа определить по нему, кто вы. Поэтому, пожалуйста, приложите к запросу данные, по которым можно найти нужный объект (ID общего доступа, URL, дата и время).
Об изменениях
При изменении содержания этой страницы дата «Последнее обновление» будет обновлена.