
Дети порой попадают в плохие ситуации, и не всегда есть возможность позвонить родителю. Мы, команда Мой МТС, придумали решение — бесплатный виджет для детских смартфонов, который устанавливается на главный экран через приложение «Мой МТС». Ребенок может в любой момент отправить сигнал бедствия. Два нажатия на SOS-кнопку — и родитель получает уведомление, что что-то произошло, и точную геолокацию ребенка.
Расскажем, что за это за виджет и как мы его разрабатывали.
Как пришла идея SOS-кнопки
Это было логичное решение для безопасности, основанное на клиентском опыте. Мы примерно понимали, что будет полезным для родителей и детей, как именно это технически реализовать. Дополнительно убедились в необходимости такого виджета для экстренных ситуаций с помощью анализа обратной связи и исследования аудитории. Исходили из того, как ведет себя человек, попавший в сложную ситуацию, и что для него в этот момент важно.
Из исследования аудитории узнали, что важнее всего в таком сервисе:
— Скорость. Представим, что на ребенка кто-то напал, он где-то смог спрятаться. У него вряд ли будет время открыть приложение, найти нужный функционал и только после этого отправить сообщение. А позвонить и вовсе может быть опасным и выдать злоумышленнику или хулиганам местоположение ребенка. Поэтому так важно было расположить кнопку на главном экране с возможностью запустить одним нажатием.
— Универсальность. Из-за особенностей платформ мы не можем себе позволить сделать идентичные решения на всех устройствах — нужно предусмотреть разные сценарии для разных смартфонов. Например, мы не можем полагаться на то, какая операционная система стоит на конкретном устройстве, поэтому стараемся реализовывать базовый вариант, который работает максимально универсально — сопровождаем СМС пуш-уведомлениями в приложении.
На реализацию геофункциональности понадобилось не так много времени, потому что до этого уже была проделана огромная работа: мы работаем с данными многие годы — база для реализации уже была. Например, в компании выстроены процессы коммуникации с пользователем посредством пуш-уведомлений, СМС, звонков и других доступных способов. Поэтому часть нового функционала стала надстройкой над уже существующей инфраструктурой.
От активной разработки до реализации продукта прошла всего пара месяцев. При этом в проекте участвовало несколько команд, поэтому, несмотря на внешнюю простоту идеи, реализация оказалась достаточно сложной: нужно было предусмотреть несколько сценариев, которых раньше не существовало. И речь не столько о самой геолокации, сколько о том, как дать ребенку возможность максимально быстро сообщить, что он попал в неприятную ситуацию. Причем сделать это так, чтобы ему не приходилось заходить глубоко внутрь приложения «Мой МТС».
Пользователь должен разрешить передачу геолокации
Сделать SOS-кнопку достаточно сложно. Но нам не потребовалось много времени. И все благодаря тому, что часть геофункционала мы уже реализовали для других проектов, а к этому продукту привлекли сразу несколько опытных команд. В результате большую часть времени встраивали новые сценарии в уже работающую систему.
Кнопка — по сути, расширение функциональности семейной группы внутри приложения. Сам виджет установить может любой абонент МТС, но, в зависимости от наличия и самой роли семейной группы, работать он будет по-разному. Если семейная группа еще не настроена, виджет будет направлять пользователя к ее настройке. Основное назначение кнопки внутри семейной группы — дать ребенку возможность оперативно сообщить родителю, что он оказался в беде.
Сбор и передача данных, в том числе персональных, по закону может происходить только с предварительного явного согласия пользователя. Поэтому мы подтверждаем согласие и явно предупреждаем пользователя о сборе данных еще на этапе вступления в семейную группу — то есть раньше, чем человек начинает пользоваться самим виджетом.
Как мы улучшили стандартные возможности сбора координат через GPS
Как известно, GPS работает так: телефон не передает информацию на GPS-спутник. Спутник транслирует информацию, а устройство принимает сигналы сразу нескольких спутников и на их основе вычисляет свое местоположение. То есть, условно, спутник можно представить как летающее радио, которое постоянно передает определенные данные, а вычисление координат происходит на самом устройстве.
После этого рассчитанные данные передаются к нам на сервер через мобильный интернет, и уже там мы их обрабатываем. Параллельно есть телеком-данные. Телефон практически постоянно связан с какой-либо базовой станцией — хотя бы для того, чтобы пользователь мог принимать входящие звонки. Когда человек перемещается, устройство выбирает новые, более подходящие базовые станции, — эту информацию тоже можно использовать.
То есть сами данные к нам поступают через мобильный интернет, а для определения местоположения используются разные источники: GPS, информация о базовых станциях, данные о соседних Wi-Fi-точках и другие доступные данные, которые помогают уточнить локацию. Это комплексная и сложная история, которая не обходится без Big Data и обработки больших массивов информации.
Местоположение можно увидеть за секунды
Когда GPS только начинал массово использоваться, существовало понятие холодного старта: устройству приходилось довольно долго принимать данные со спутников, прежде чем оно могло что-то посчитать. Потом появились способы ускорить этот процесс — часть необходимой информации стала доступна через сеть. Поэтому современные системы геолокации работают значительно быстрее. Но в нашем случае основной выигрыш все равно в том, что к моменту взаимодействия ребенка и родителя у нас уже есть подготовленные (собранные, обработанные и отфильтрованные) данные.
Данные с устройства поступают постоянно — естественно, при наличии явного согласия пользователя. Поэтому в тот момент, когда ребенок нажимает кнопку, нам не нужно начинать определять его местоположение с нуля — нужная информация уже есть. И когда родитель переходит в приложение, мы можем достаточно быстро показать ему актуальную геолокацию.
Как обрабатываются данные
За годы работы мы пробовали разные модели обработки. Начинали с достаточно простых подходов — например, с фильтра Калмана, немного адаптированного под наши данные. Подобные алгоритмы давно применяются в авиации, навигации и других областях. Но требования к точности постепенно растут, поэтому мы продолжаем экспериментировать и строить модели, которые пытаются предсказывать местоположение с учетом накопленной информации и контекста.
Для онлайн-обработки есть отдельные ограничения — здесь особенно важна скорость, поэтому использовать очень тяжелые алгоритмы не всегда возможно. В онлайне работают относительно простые фильтры, но их настройка сама по себе требует большой предварительной работы: обучения моделей, экспериментов, проверки результатов.
Мы прошли довольно длинный путь. Вначале подход был простой: если в траектории есть очевидный выброс, давайте его просто отфильтруем. Но затем выяснилось, что само понятие «выброс» далеко не всегда очевидно: один и тот же резкий скачок на карте в одном случае действительно ошибка, а в другом — реальное перемещение человека. Поэтому пришли к более сложному подходу: вместо того чтобы просто искать отдельные неправильные точки, пытаемся по накопленным данным моделировать поведение абонента и понимать, чему на самом деле соответствует то, что мы видим.
Как мы следим за точностью геолокации
Мы очень много изучали негативный пользовательский опыт: у нас была достаточно прозрачная линия технической поддержки, через которую собиралась обратная связь. Мы анализировали, на что жалуются пользователи, с чем связаны проблемы и что с ними можно сделать.
В случае детской безопасности неправильная геолокация — это прежде всего риск повысить тревожность родителя. Например, ребенок на самом деле находится в школе, а приложение вдруг показывает его где-нибудь в лесу. Родитель видит это и, естественно, начинает переживать. Причем проблема может быть не только в точности координаты, но и в актуальности данных. Или, допустим, ребенок уже двадцать минут как ушел из школы, а приложение продолжает показывать его там. Формально координата могла быть абсолютно точной — но двадцать минут назад. Для родителя такая информация воспринимается как неправильная геолокация и тоже становится поводом для тревоги.
Поэтому мы работаем и над точностью, и над задержкой. Благодаря онлайн-данным стараемся максимально сокращать время между реальным перемещением человека и тем, что увидит пользователь. Это непрекращающаяся работа.
Сейчас есть общая проблема, которая касается практически всех мобильных приложений, использующих GPS: спутниковый сигнал может искажаться. Есть два основных варианта: сигнал могут заглушать или подменять. В первом случае GPS-локация просто пропадает либо становится недоступной, во втором — устройство получает такие данные, на основе которых рассчитывает неправильные координаты. То есть человек физически может находиться в одном месте, а GPS показывать совсем другое.
От этой проблемы страдают не только приложения МТС, а вообще любые сервисы, которые используют спутниковую геолокацию. Наше преимущество — в наличии дополнительного источника: телеком-сети. Она дает более стабильные данные, которыми можно перепроверять информацию, полученную из других источников.
От чего зависит точность геолокации
Геолокация в виде широты и долготы по определению не является абсолютно точной величиной — всегда есть определенная погрешность. Поэтому главный вопрос не в том, существует ли погрешность, а в том, насколько она влияет на пользовательский опыт.
Точность зависит от конкретного места и условий. Когда проектировалась сама концепция сотовой связи, была идея равномерного покрытия территории базовыми станциями — отсюда и название «сотовая». В идеальном мире станции располагались бы равномерно, и условия в разных местах были бы похожими. Но в реальности сеть устроена намного сложнее. Где-то базовых станций очень много и радиус их покрытия небольшой, а где-то станций меньше и одна может работать на десятки километров, поэтому и точность в разных местах будет отличаться.
Системы поиска небольших меток вроде AirTag используют другой принцип: под капотом там, по сути, комбинация Bluetooth, Wi-Fi и сети окружающих устройств. Bluetooth и Wi-Fi работают на сравнительно небольшом расстоянии. Саму метку можно представить как очень маломощный передатчик: далеко он ничего не передаст, но находящееся рядом устройство способно его заметить.
Сила подобных систем — в массовости: фактически каждое совместимое устройство становится частью большой сети. Когда кто-то с таким смартфоном проходит рядом с меткой, устройство может ее обнаружить, а информация затем попадает на серверы.
За счет того что устройств очень много, рано или поздно рядом с потерянной меткой оказывается кто-то, кто ее увидит. А когда пользователь уже находится совсем рядом с меткой, можно применять другие радиотехнологии, позволяющие определить положение значительно точнее на небольшом расстоянии.
Масштабировать ровно тот же принцип на поиск любого человека по всей стране гораздо сложнее — для этого нужна огромная плотность подобных устройств. Мы тоже смотрели в сторону таких технологий и экспериментировали с отдельными устройствами, но здесь критична массовость сети.
Скорость сигнала важнее геолокации
Главный смысл кнопки не в том, чтобы определить координаты ребенка с точностью до метра, основная ее задача — своевременно уведомить родителя, что с ребенком что-то не так. Большая точность геолокации полезна, но с точки зрения пользовательского опыта в таком сценарии важнее быстро получить сигнал: ребенок находится в беде примерно там-то, родителю нужно отреагировать.
Не стоит рассматривать кнопку как замену экстренному вызову: системный экстренный вызов в первую очередь связывает человека со службой спасения, а наш сценарий — с родителем. Особенно это важно для маленьких детей. Чем ребенок младше, тем сложнее ему общаться с незнакомым оператором службы спасения, особенно если его специально к этому не готовили. При этом в нашем функционале есть и возможность позвонить 112.
Поэтому кнопку правильнее воспринимать как одну из мер в общем комплексе безопасности ребенка. Ситуации могут быть очень разными. Ребенок мог подвернуть ногу, упасть с велосипеда, попасть в какую-то другую неприятность. Для взрослого это может выглядеть не очень серьезно, а для самого ребенка это кризисная ситуация, и ему нужно связаться с родителями. Кроме того, бывают ситуации, когда ребенок вообще не может общаться голосом. Например, ему нужно сообщить о проблеме тихо, не привлекая внимания. Это один из ключевых сценариев, ради которого и нужен быстрый и бесшумный способ отправить уведомление. Сама кнопка — это прежде всего способ быстро поднять тревогу, а дальше родитель уже получает инструменты, которые помогают понять ситуацию и действовать.
Работает ли кнопка за границей
В текущем варианте за границей механизм работать не будет. Это связано в том числе с тем, как устроена отправка СМС на короткий номер. Когда человек находится в роуминге, он работает уже в чужой телеком-сети. Сообщение на короткий номер обрабатывается инфраструктурой этой сети, а не нашей, поэтому привычный сценарий там не срабатывает.
Мы уже работаем над тем, как расширить функциональность за границу. Вероятно, там потребуется другое техническое решение. При этом отдельный сервис «Всегда на связи» работает в роуминге в 12 популярных для туризма странах. Сервис позволяет ребенку при нулевом или отрицательном балансе в течение 30 дней звонить и писать СМС родителям. Ребенку доступны 20 минут звонков и 20 СМС для общения с участниками «Семейной группы», а родитель получает уведомление о необходимости пополнить счет.
Что будет, если приложение долго не открывать
Здесь многое зависит не от нас, а от конкретного устройства, производителя и операционной системы. Где-то устройство сначала предлагает удалить давно не используемое приложение, где-то действуют другие механизмы. Операционная система может удалить неиспользуемое приложение автоматически. Поэтому один из наших следующих челленджей — внедрить систему уведомлений или других механизмов, которые периодически «будят» приложение. Родителю на всякий случай стоит раз в месяц проверять, что приложение установлено и виджет находится на экране.
Планы и выводы
Приложение уже работает, и это еще один способ обеспечения безопасности ребенка. В ближайшем будущем будет выводиться и кратчайший маршрут к локации ребенка.
Конечно, SOS-кнопка не отменяет обучения ребенка правилам безопасности и конкретным действиям в разных экстремальных ситуациях, но она может стать тем самым максимально оперативным и незаметным способом отправить сигнал маме или папе в случае ЧП. Лучше, чтобы такая кнопка никогда не понадобилась, но все же была на смартфоне вашего сына или дочери.
Mishootk
Представьте, что вы научились обрабатывать длительное удержание физической кнопки (питание, звук...) - в темноте, на ощупь, одной рукой, не засвечивая экран. Вот это кнопка для экстренной ситуации.
Андроид при длительном удержании боковой кнопки
А какая у вас реакция на случайные нажатия? Это же кнопка-виджет без подтверждения, "в самом удобном месте для быстрого доступа".