Эффективен для приложений в которых данные пришедшие не вовремя становятся бесполезными
При разработке мобильного приложения следует учитывать, что данные, которыми оперирует это приложение, могут представлять определенный интерес для третьих лиц. Степень ценности этих данных варьируется в широких пределах, тем не менее, даже наиболее простая приватная информация, например, пароль входа в приложение, требует проработки ее защиты. Особенно это важно в свете распространения мобильных приложений на все сферы электронных услуг, включая финансовые, банковские операции, хранение и передачу личных данных и так далее. Всем интересующимся — добро пожаловать под кат.
Все нижесказанное — исключительно мой опыт, безусловно, данные могут быть неточными, поэтому буду благодарен за любые поправки и дополнения к статье. Я не нашел исчерпывающих статей в сети на подобную тематику, которые бы собирали всю нужную (хотя бы базовую) информацию в одном месте, поэтому решил обобщить свой опыт в этой области на текущий момент времени.
Защита мобильного приложения
Основные виды атак на мобильное приложение:
Перечень основных уязвимостей приложений
Рассмотрим уязвимости общего характера, без привязки к конкретной платформе. Здесь и далее используется аббревиатура КВД — критически важные данные пользователей. К КВД относятся любые данные, которые не должны быть доступны третьей стороне, это касается как персональных данных пользователя (дата рождения, адрес проживания, личная переписка), так и его приватных данных (пароли, данные кредитных карт, номера банковских счетов, номера заказов и так далее).
Перечень основных уязвимостей следующий:
Использование незащищенных локальных хранилищ.
- Опасность: Очень высокая.
- Комментарий: Встречается повсеместно, выражается в хранении КВД в незащищенных или слабо защищенных локальных хранилищах, специфических для конкретной платформы. Вскрытие третьей стороной — элементарное, и, как правило, не требуется наличие специальных навыков у атакующего.
- Защита: Хранить КВД можно только в защищенных хранилищах платформы.
Хранение КВД в коде.
- Опасность: Высокая.
- Комментарий: Уязвимость касается хранения КВД внутри кода (в статических константных строках, в ресурсах приложения и т.п.). Яркие примеры: хранение соли для пароля (password salt) в константе или макросе, которая применяется по всему коду для шифрования паролей; хранение приватного ключа для асимметричных алгоритмов; хранение паролей и логинов для серверных узлов или баз данных. Легко вскрывается третьей стороной при наличии базовых навыков декомпиляции.
- Защита: Не хранить никакие КВД в коде или ресурсах приложения.
Применение алгоритмов с хранением приватного ключа.
- Опасность: Высокая.
- Комментарий: Уязвимость актуальна в случае, если приватная информация алгоритма (приватный ключ) вынужденно сохраняется в коде или ресурсах мобильного приложения (чаще всего так и бывает). Легко вскрывается методом декомпиляции.
- Защита: В мобильной разработке желательно применять только современные симметричные алгоритмы с генерируемым случайным одноразовым ключом, обладающие высокой стойкостью с взлому методом грубой силы, либо выводить асимметричный приватный ключ за пределы приложения, либо персонализировать этот ключ (как пример — приватным ключом может выступать пользовательский код входа, сохраненный в зашифрованном виде в защищенном хранилище операционной системы).
Использование асимметричного алгоритма с приватным ключом, известным серверу.
- Опасность: Зависит от степени защищенности сервера.
- Комментарий: Уязвимость носит двойной характер. Хранение приватного ключа допускает возможность расшифровки пользовательских данных на стороне сервера. Во-первых, это некорректно с точки зрения безопасности (если сервер будет взломан — атакующий также получит доступ к приватным данным пользователей), а во-вторых, это нарушает приватность персональных данных. Пользователь всегда должен быть уверен, что его персональная информация не известна никому, кроме него самого (только если он явно не дал разрешение на ее публикацию). Часто приложения позиционируют себя как защищенные, но на деле таковыми не являются, так как содержат внутри себя средства для расшифровки персональной информации.
- Защита: Без явной необходимости и явного разрешения пользователя (чаще всего через лицензионное соглашение) ни приложение, ни сервер не должны иметь никакой возможности расшифровать приватные данные пользователя. Простейший пример — пароль пользователя должен уходить на сервер уже в виде хеша, и проверяться должен хеш, а не исходный пароль (серверу абсолютно незачем знать пользовательский пароль; если же пользователь его забыл — для такой ситуации существует давно отлаженный механизм восстановления пароля, в том числе с двухфакторной авторизацией клиента для повышенной безопасности процедуры восстановления).
Использование самописных алгоритмов шифрования и защиты.
- Опасность: Средняя.
- Комментарий: Это прямое нарушение принципа Керкгоффса. Выражается в попытке разработчика изобрести "свой личный, не известный никому, а поэтому супер-защищенный алгоритм шифрования". Любое отклонение от существующих, многократно проверенных и изученных, математически доказанных алгоритмов шифрования в 99% случаев оборачивается быстрым взломом подобной "защиты". Требует наличия средне-высоких навыков у атакующего.
- Защита: Следует подбирать подходящий алгоритм только из отлаженных и актуальных общеизвестных криптографических алгоритмов.
Передача КВД во внешнюю среду в открытом виде.
- Опасность: Средняя.
- Комментарий: Выражается в передаче КВД без применения шифрования по любому доступному каналу связи с внешней средой, будь то передача данных стороннему приложению или передача в сеть. Может быть вскрыто опосредованно путем вскрытия не приложения, а его хранилища, или целевого приложения. Взлом требователен к наличию навыков у атакующего, при условии, что хранилище является защищенным.
- Защита: Любые КВД перед выходом за пределы приложения должны быть зашифрованы. Локальные хранилища платформы не являются областью приложения, они тоже должны получать на вход только зашифрованные данные.
Игнорирование факта наличия рутованных или зараженных устройств.
- Опасность: Средняя.
- Комментарий: Рутованные устройства — это девайсы, где выполнена модификация для получения прав суперпользователя на любые операции, изначально запрещенные производителем операционной системы. Выполняется пользователем на своем устройстве самостоятельно, и не обязательно добровольно (клиент может быть не в курсе, что устройство взломано). Установка приложения на рутованный девайс нивелирует все штатные средства защиты операционной системы.
- Защита: Если это технически возможно для платформы — то желательно запрещать работу приложения, если удалось понять, что запуск производится на рутованном устройстве, или хотя бы предупреждать об этом пользователя (спасибо за дополнение DjPhoeniX).
Хранение КВД в защищенных хранилищах, но в открытом виде.
- Опасность: Средняя.
- Комментарий: Разработчики зачастую склонны сохранять КВД в защищенные системные хранилища без дополнительной защиты, поскольку системные механизмы хорошо сопротивляются взлому. Однако уровень их стойкости падает до минимума в случае, если устройство рутованное.
- Защита: КВД не должны использоваться в приложении без дополнительного шифрования. Как только надобность в "открытых" КВД отпала — они немедленно должны быть либо зашифрованы, либо уничтожены.
Перевод части функционала во встроенные веб-движки.
- Опасность: Средняя.
- Комментарий: Чаще всего выглядит как передача КВД во встроенный браузер, где загружается внешняя веб-страница, выполняющая свою часть функционала. Уровень защиты в этом случае резко снижается, особенно для рутованных устройств.
- Защита: Не использовать встроенный браузер и встроенный веб-движок в операциях с КВД. На крайний случай — шифровать КВД перед передачей.
Реверсивная инженерия алгоритмов, представляющих интеллектуальную ценность.
- Опасность: Низкая, зависит от ценности алгоритма.
- Комментарий: Если при разработке приложения внутри компании используются некие собственные алгоритмы, которые могут представлять высокую ценность для потенциальных конкурентов или взломщиков, то эти алгоритмы должны быть защищены от постороннего доступа.
- Защита: Автоматическая или ручная обфускация кода.
Специфика разработки мобильных приложений
Есть несколько общих для всех мобильных платформ моментов, которые следует соблюдать при разработке.
Защита пользовательским кодом
- Если приложение защищено пользовательским паролем (PIN-кодом, сканом отпечатка пальца, графическим паролем и т.д.), то при уходе приложения в фон ("сворачивании") оно должно немедленно отображать окно ввода этого защитного кода, перекрывая собой весь экран приложения. Это исключает возможность для злоумышленника получить приватную информацию в случае кражи устройства, пока приложение все еще запущено и находится в спящем режиме.
- Любой пользовательский код должен иметь ограниченное количество попыток ввода (например, 5 раз), затем, в случае неудачи, приложение должно автоматически разлогиниваться (или и вовсе блокироваться, зависит от конкретного приложения).
- В настоящее время при использовании цифровых кодов строго рекомендуется использовать ограничение на длину кода в минимум 6 цифр (больше можно, меньше — нельзя).
Функционирование клиент-серверного приложения
- Для клиент-серверных приложений очень полезно применять сессионный механизм с ограниченным временем жизни сессии. Это позволит избежать "простаивания" приложения в незащищенном режиме, если пользователь просто забыл закрыть его и оставил устройство в свободном доступе. Следует учитывать, что срок действия сессии и ее идентификатор относятся к КВД, со всеми вытекающими отсюда последствиями. Одним из удачных примеров реализации подобного механизма является получение абсолютного значения времени с сервера после прохождения процедуры авторизации пользователя (дата и время должны показывать, когда именно сессия станет неактивной). Дату и время окончания действия сессии не следует генерировать на устройстве, это снижает безопасность и гибкость приложения.
- Клиент-серверное приложение не должно осуществлять изменение КВД в локальном режиме. Любое действие, требующее изменения КВД, должно проходить синхронизацию с сервером. Исключение из этого правила составляет только пользовательский код входа, задаваемый лично пользователем и сохраненный в защищенном локальном хранилище.
Работа с датами
- При оперировании важными для работы приложения датами, вроде времени уничтожения сессии, не следует опираться на относительное время. То есть, передаваемые с сервера данные не должны содержать дату в виде "плюс N секунд/часов/дней от текущего момента". В силу наличия потенциально высоких задержек в передаче данных по сети от мобильного приложения к серверу и обратно, подобный способ синхронизации будет обладать слишком большой погрешностью. Кроме того, атакующий (или просто недобросовестный пользователь) может попросту сменить локальный пояс на устройстве, нарушив таким образом логику работы ограничительных механизмов приложения. Всегда нужно передавать только абсолютное значение времени.
- Абсолютные значения следует передавать с применением универсальных способов обмена подобной информацией, без привязки к часовому поясу конкретного пользовательского устройства. Чаще всего, оптимальным вариантом является поведение приложения, при котором данные отображаются пользователю в его локальном часовом поясе, но их хранение и передача осуществляется в формате, не привязанном к тайм-зоне. Подходящими форматами для дат и времени являются либо универсальный UNIX timestamp, сохраненный в переменной 64-битного целого знакового типа (UNIX timestamp — это количество секунд, прошедшее с 1 января 1970 года), либо, на крайний случай, строка в полном формате ISO-8601 с нулевой тайм-зоной. Предпочтителен именно UNIX timestamp, он позволяет избежать потенциальных ошибок и проблем с конвертацией строк в дату и обратно на разных мобильных платформах.
Дополнительные рекомендации
- Приложение не должно отображать приватную пользовательскую информацию большими, яркими, хорошо читаемыми шрифтами, без явной на то необходимости и без отдельного запроса пользователя, чтобы исключить возможность чтения этих данных издали с экрана устройства.
- Не стоит слепо доверять библиотекам с открытым исходным кодом, которые предлагают некую защиту приватным данным пользователей. Исключение составляют библиотеки, проверенные временем и используемые в крупных проектах корпораций (например, встроенное шифрование в открытом движке базы данных Realm). Штатных механизмов защиты операционной системы и общедоступных проверенных криптографических алгоритмов в подавляющем большинстве случаев будет более, чем достаточно.
- Абсолютно недопустимо использовать криптографические библиотеки с закрытым исходным кодом (даже если они платные). В таких решениях вы никак не сможете проверить, насколько эффективна данная библиотека, а также насколько "честная" у нее защита (нет ли там механизма backdoor, или не отсылаются ли "защищенные" данные какой-то третьей стороне).
- В релизных сборках приложений должно быть отключено логгирование данных в системную консоль и незащищенные файлы. Специфические логи для разработчиков могут присутствовать, но желательно в зашифрованном виде, во избежание доступа третьих лиц к закрытой служебной информации, которая может присутствовать в логах.
Специфическая информация по платформе iOS
Рассмотрим доступные для разработчика хранилища данных при разработке под iOS:
- Штатная защищенность: Отсутствует.
- Комментарий: Используется только для хранения безопасных для функционирования приложения данных, не связанных с приватной информацией. Чаще всего туда записывают только клиентские настройки интерфейса. Для других данных это хранилище не подходит, так как представляет собой обычный файл и вскрывается за несколько секунд.
Бинарные файлы (NSKeyedArchiver).
- Штатная защищенность: Средняя, если пользоваться атрибутом NSFileProtectionComplete по ключу NSFileProtectionKey , иначе — отсутствует (спасибо за дополнение agee).
- Комментарий: Сами по себе являются физическими файлами и могут быть элементарно доступны третьей стороне. Уровень защиты зависит исключительно от примененных к данным алгоритмов шифрования. Это не самое удобное место для хранения данных, поэтому без особой необходимости (чаще всего это возможность передавать эти данные, к примеру, по электронной почте) лучше подобный способ не применять. Если файл создан со значением атрибута NSFileProtectionComplete для ключа NSFileProtectionKey , то операционная система удерживает этот файл в зашифрованном состоянии, пока устройство заблокировано или находится в состоянии загрузки, но при несоблюдении этих условий данные будут доступны на чтение и запись, как в обычном файле, так что это лишь временная мера с узкой областью применения.
- Штатная защищенность: Зависит от движка и разработчика.
- Комментарий: Современные движки БД поддерживают внутреннее шифрование данных. Разработчику понадобится найти баланс между шифрованием и производительностью, включить шифрование базы для критических данных, а также дополнительно применять шифрование для КВД перед записью в базу.
Связка ключей (Keychain).
- Штатная защищенность: Максимальная (не распространяется на устройства с джейлбрейком).
- Комментарий: Наиболее удачное место для хранения любых КВД. Однако, учитывая, что устройство может быть рутованным, все КВД должны быть зашифрованы дополнительно перед сохранением в Keychain. Кроме того, нужно с осторожностью использовать облачную синхронизацию из-за возможности автоматического сохранения Keychain в облаке. В случае, если приложение использует CloudKit, необходимо внимательно следить за данными, которые не должны синхронизироваться (если таковые имеются), и исключать их из набора копируемых данных.
Специфическая информация по платформе Android
Я слабо разбираюсь в платформе Android, поэтому нижеизложенный список — это краткое тезисное изложение базовых материалов, которые мне удалось найти по этой платформе:
Кроме того, нужно с осторожностью использовать доступные хранилища информации:
- Штатная защищенность: Отсутствует.
- Комментарий: Должно использоваться только по прямому назначению, а именно — для хранения общедоступных незащищенных пользовательских настроек. Остальные данные здесь размещаться не должны.
Базы данных (SQLite).
- Штатная защищенность: Зависит от разработчика.
- Комментарий: Представляет собой обыкновенные файлы, так что все КВД перед записью должны быть соответствующим образом зашифрованы. База допускает возможность автоматического шифрования, его включение будет хорошим усилением защиты данных. В качестве ключа шифрования наиболее целесообразно применять код защиты, задаваемый лично пользователем приложения (код, в свою очередь, должен быть зашифрован и сохранен в Account Manager, см. описание ниже).
- Штатная защищенность: Высокая (только до API версии 18).
- Комментарий: Здесь следует размещать все КВД, но предварительно обязательно нужно выполнить дополнительное шифрование данных. После API 18 использование не рекомендуется.
- Штатная защищенность: Максимальная (не распространяется на рутованные устройства, доступна с API 18).
- Комментарий: Аналогично Account Manager, но настоятельно рекомендуется пользоваться этим хранилищем вместо него, в случае, если KeyStore доступно разработчику (API v.18, Android 4.3 и новее).
Заключение
Также стоит упомянуть, что количество применяемых уровней защиты зависит от конкретного приложения. К примеру, если приложение вообще не является клиент-серверным, не содержит никаких КВД, а также не оперирует ценными внутренними алгоритмами, то вообще нет смысла навешивать на него какую-либо защиту. Если же приложение ориентировано, например, на выполнение банковских операций, или хранение пользовательских паролей, то степень его безопасности должна быть наивысшей. Однако перечисленные ранее общие уязвимости мобильного сектора достаточно легко могут быть исключены из приложения, чаще всего это не вносит особых дополнительных затрат, если применение требуемого уровня защиты было начато на ранних этапах разработки приложения. А вот внедрение защиты пост-фактум в уже работающее приложение вполне может быть сопряжено со значительными затратами сил и времени разработчиков. Поэтому выбор и согласование уровня защищенности, а также перечня КВД в разрабатываемом приложении, должны выполняться на самых ранних этапах проектирования.
Захламлять телефон — привычка плохая. Ставить нужно только реально необходимый софт. Бесполезные программы занимают место в памяти, снижают производительность устройства и заставляют вас чаще заряжать его. Есть категории приложений, которые нужно немедленно удалить, несмотря на мнение об их пользе.
1. Работают в фоновом режиме
Программы, которые работают в фоновом режиме, постоянно занимают место в оперативной памяти устройства. Они расходуют заряд аккумулятора, даже, когда их не используют. Постоянно закрывать их — не выход, поскольку при этом также потребляется энергия. Постоянное закрытие и перезапуск софта негативно влияет на стабильность работы устройства.
Не нужны и программы, которые управляют размещением приложений в ОЗУ телефона. Эта задача выполняется средствами операционной системы Android.
Исключения: приложения, работа которых в фоновом режиме необходима вам — мессенджеры и другие программы, уведомления которых вы хотели бы получать моментально.
2. «Чистильщики»
Приложения-«чистильщики» обещают вам очищать телефон для роста производительности. Что реально бывает: удаленный софт оставляют некоторые кэшированные данные. Но для этого специальная программа не нужна. Перед удалением софта нужно удалить его кэшированные данные в настройках ОС.
Программы для автоматической чистки телефона потребляют много энергии, а реклама в них расходует интернет-трафик.
3. Предустановленные
Производители смартфонов предустанавливают на свои устройства разные программы. В их числе приложения для бронирования номеров в отелях или офисные инструменты. Значительная их часть бесполезна, но они есть в вашем телефоне вместе с набором софта от Google.
Такие программы зачастую не могут быть удалены полностью. Но отключить вы можете любую программу, даже системый браузер Chrome (этого делать как раз и не рекомендую). Отключенный софт не будет перезапускаться. Значок программы перестанет отображаться в разделе приложений телефона. Занимать место в памяти она все равно будет. Единственным способом полного удаления предустановленной программа станет рутирование устройства, которое я не рекомендую делать неопытным пользователям.
Альтернатива рутированию
Перед покупкой очередного смартфона обращайте внимание не только на характеристики железа и популярность бренда, но и на описание проприетарной оболочки производителя и ее отличия от чистой версии Android. На рынке представлены телефоны с чистой версией ОС. Если функциональность оболочки бренда не представляет для вас интереса, отдавайте предпочтения таким моделям.
4. Энергосберегающий софт
Подобно «ускоряющим ОЗУ» программам, они лишь занимают место. Батарея — самое слабое место смартфона. Пользователи рады любой возможности пореже заряжать устройство и ставят софт, который якобы помогает в этом. В итоге — вы просто будете смотреть рекламу.
Чтобы батарея разряжалась медленнее, нужно снизить энергопотребление самой ОС и всех запущенных служб и программ. Эффективным может быть энергосберегающее приложение, которые станет управлять операционной системой. Это возможно только на рутированном смартфоне.
Скачанная из магазина приложений программа может дать вам совет или предупредить о неэффективном использовании телефона. Если она закроет энергоемкие приложения, скорее всего, они будут вновь открыты. Эффект будет обратным желаемому — энергия будет тратиться на перезапуск софта.
Вместо установки бесполезных программ, отдавайте предпочтение моделям с емкими аккумуляторами, даже если они не тонкие.
5. Клиенты социальных сетей
Здесь не может быть однозначной рекомендации. Если вы активно общаетесь в социальных сетях, эти программы вам нужны. Благодаря им вы постоянно получаете уведомления о происходящем в кругу вашего общения.
Часто именно нескончаемый поток информации объявляют причиной экзистенциального кризиса, переживаемого индивидуумом.
Возможно, общество XXI века действительно дезориентировано бесконечными реками информации; возможно, новые технологии действительно оказывают разрушительное воздействие на наш мозг. Но подобные опасения высказывали и наши предки, и было бы глупо считать, что они-то ошибались, а вот мы правы. Вполне возможно, корень проблемы не в количестве потребляемой нами информации, а в том, что мы не знаем, для чего нам эта информация.
Так думали не только древние греки. Древние евреи придерживались того же мнения. Долгое время раввины противились записи Устного Закона, метода толкования святых писаний, позже ставшего первой частью Талмуда: Мишной. После создания Мишны история повторилась: новые поколения раввинов не желали предавать бумаге толкования Мишны, из которых позже была создана вторая часть Талмуда, известная как Гемара. Свое нежелание записывать толкования раввины обосновывали аргументами, которые мало чем отличались от аргументов Сократа. Они считали, что знание по природе своей диалектично и может быть результатом лишь устной и живой беседы. Если же знание записано, оно умрет и окаменеет, приводя будущие поколения к ошибкам в его понимании.
Платон тоже предупреждал об опасности свободного хождения текстов. Он сомневался в возможности среднего человека отличить морально полезный текст от вредного.
Примерно в это же время переизбыток информации связали с психологической усталостью.
Рост количества и разнообразия книг поставил под вопрос саму возможность человека отличать полезные для души и ума книги от вредных или бесполезных. Учителя не знали, как в новых условиях направлять интеллектуальный рост своих учеников.
И педагоги, и ученики поняли, что прочесть все попросту невозможно. При подобном изобилии книг помощь в их выборе и наставление в чтении стали одной из главных задач обучения.
Эта пассивность по отношению к информации особенно пугает в образовании: преподаватели пишут свои учебные программы с учетом дефицита внимания, от которого якобы страдает молодежь Информационной Эры. В высших учебных заведениях все чаще говорят о том, что ученики просто неспособны читать серьезные, сложные, большие тексты.
Рассказываем, как удержать пользователей мобильных приложений и почему retention — главный показатель для тех, кому важна реальная прибыль.
Мобильные приложения стали неотъемлемой частью жизни человека. Только через Google Play и AppStore доступно более 4 млн различных приложений, и их число с каждым днём растет.
По прогнозам аналитиков, количество загрузок с 143,9 млрд, зафиксированных в 2016 году, вырастет до 352,9 млрд к 2021 году — это говорит о небывалых темпах роста рынка мобильных приложений. Создается острая конкурентная среда для нового продукта и разработчикам приходится ставить перед собой ряд маркетинговых задач.
Но главная сложность заключается не в привлечении внимания к продукту, а в удержании «ценных пользователей».
Согласно исследованиям, до 80% клиентов, скачавших и установивших приложение, в течение первых трёх месяцев откажутся от дальнейшего использования программы.
В связи с этим поднимается ряд вопросов, касающихся причин оттока пользователей, анализа потребительской лояльности и внедрения действующих стратегий по удержанию клиентов.
Три причины оттока пользователей
Мобильные разработчики ссылаются на три основные причины потери пользовательского интереса:
- отсутствие ценности;
- плохое первое впечатление;
- несоответствие ожиданиям.
Под отсутствием ценности понимается немотивированно высокая стоимость приложения. Если создатель решает взимать плату за использование сервиса (предлагает платную подписку или дополнительные бонусы за монетизированный тариф), он должен обосновать это.
Вторая причина — неблагоприятное первое впечатление. У пользователей нет времени и желания разбираться со сложным запутанным интерфейсом, настраивать приложение, читать руководство и просматривать FAQ. Если приложение с первых секунд не работает так, как нужно клиенту, он удалит его и установит новое.
Схожая ситуация возникает в случае несоответствия приложения заявленной функциональности. Если программа должна редактировать фото в одно нажатие, но не делает этого — готовьтесь к разочарованию людей, отрицательным отзывам и падению количества скачиваний.
Николай Шмичков
Что вы даете аудитории?
Чтобы избежать оттока пользователей, продумать маркетинговую стратегию нужно ещё до начала разработки. Здесь работает знаменитый лозунг «не спрашивай, что страна может сделать для тебя. Спроси себя, что ты можешь сделать для неё». Но вместо страны — клиент.
Если быть до конца честными, главная цель большинства разработчиков — прибыль. Но монетизировать усилия удастся только, если предложить аудитории действительно нужный продукт. Поэтому ещё на этапе проектирования рекомендуется ответить на главный вопрос: как ваше приложение облегчит или улучшит жизнь пользователя? Если у вас есть простой, понятный ответ — половина дела сделана.
Основная ценность мобильного приложения
Если пользователям приходится самостоятельно убеждаться в полезности приложения, вам следует пересмотреть рекламную кампанию. Ценность должна быть очевидна с первых секунд. Например, если программа позволяет получать пяти- или десятипроцентную скидку на каждый заказ, то большинство людей, скачавших приложение, продолжат его использовать — это очевидная и понятная каждому выгода.
Когда продукт не предоставляет финансовых преимуществ, постарайтесь сделать его достоинства доступными.
В зависимости от специфики, это может быть экономия времени при использовании системы онлайн-бронирования, простой способ найти партнера при выборе раскручиваемого приложения для знакомств. Подумайте, какие выгоды предлагаете клиентам, выберите ключевую и донесите её до аудитории.
Что касается дополнительных преимуществ, их можно выдавать постепенно. Подобный подход реализован в LinguaLeo: новые возможности открываются перед пользователями с переходом на следующий уровень. Это несколько игровой принцип, но для конкретного продукта он работает: увлекает клиента, стимулирует его регулярно заходить в приложение и совершать целевые действия.
Давление на клиента
Пользователи любят чувствовать заботу разработчиков. Но иногда это может восприниматься как излишнее давление и навязчивое внимание. Если приложение постоянно обновляется, несколько раз в день шлет уведомления, регулярно просит участвовать в опросах, то есть постоянно пытается «вступить в диалог» — такой подход вызывает раздражение и повышает риск оттока представителей целевой аудитории.
Мобильным разработчикам нужно найти золотую середину: с одной стороны, не давать клиентам забывать о своём продукте, собирать статистику для его улучшения и рекламировать новые возможности, с другой — в первую очередь думать о пользователе и не давить на него.
Курс
Маркетинг мобильных приложений
Узнать больше
- Научитесь продвигать приложения и привлекать мобильный трафик
- Составите полноценную маркетинговую стратегию по мобильному продвижению
- Станете востребованным специалистом на быстрорастущем рынке mobile
Персонализированный подход к пользователям
Приложения запрашивают доступ к огромному массиву персональных данных, и не использовать их — своеобразное маркетинговое преступление. Мобильных программ настолько много, что выпустить действительно уникальный продукт с каждым днём становится сложнее. Скорее всего, уже есть несколько десятков (или сотен) приложений с аналогичной функциональностью. Выделиться среди них можно, если сделать общение с пользователем более личным.
Основные инструменты персонификации — электронная почта и push-уведомления. Но и здесь есть подводные камни. В руках неумелого маркетолога email останется мертвым инструментом. О том, как увеличить кликабельность email-рассылок, я рассказывал в статье. Вот основные советы:
Создавать «интеллектуальные» рассылки не так сложно, как кажется. Существует множество сервисов, упрощающих управление базой и позволяющих максимально автоматизировать процесс.
In-App уведомления в мобильных приложениях
Казалось бы, возникает парадокс: пользователь уже успешно скачал и установил мобильное приложение, зачем еще рассылать In-App уведомления? Но статистика не ошибается: они увеличивают рост клиентской базы на 21% в месяц.
Мир мобильных приложений разнообразен. В App Store насчитывается более 1,5 млн штук, в Google Play — более 2,9 миллиона. Естественно, среди них есть те, которыми не рекомендуется или даже нельзя пользоваться. Они могут быть просто балластом, занимающим место в памяти, а могут даже наносить вред смартфону.
С доступом к вашим личным данным. Их точно продадут
Самое популярное из них — GetContact. Его принцип работы основан на сборе личных данных — приложение запоминает, как ваш номер подписан у других, и обезличенно показывает вам. Кроме того, оно распознаёт спамеров, анализируя последние звонки абонента.
Приложение начало пользоваться популярностью. В итоге у него оказалась огромная база телефонных номеров. Естественно, они оказались в руках у третьих лиц и его пользователи начали получать спам-звонки.
Итог: пользоваться стоит только популярными приложениями, получающими доступ к вашим личным данным. От спамеров вас защитит "Яндекс" с той же возможностью, что у GetContact, только оно точно не сольёт их этим же спамерам.
Как определить, что мобильное приложение шпионит за вами. Оно совершает эти 6 действий
Из сторонних источников. Их никто не контролирует, а значит, им можно делать всё что угодно
До 2019 года сторонние магазины приложений и программы, не размещённые в App Store и Google Play, были строго нишей гиков. А потом Правительство США запретило установку приложений Google на смартфонах Huawei и Honor. Теперь это задача каждого, кто пользуется устройствами этих компаний, вышедшими осенью 2019 года и позже.
На них приложения нужно скачивать с помощью APK-файлов через браузер. Без этого никуда. Google Play заменил AppGallery. И в нём нет WhatsApp, Instagram и YouTube — самых активно используемых приложений. Их можно скачать на официальных сайтах, с другими, менее известными приложениями стоит быть осторожнее.
App Store и Google Play строго следят за разработчиками — как размещена реклама, как предлагаются встроенные покупки, к каким данным запрашивается доступ и кому они передаются.
Приложения, которые скачиваются со сторонних источников, не контролируются никем. Поэтому они могут написать в пользовательском соглашении (которое никто не читает) что угодно, получать доступ к данным, которые им не требуются. Устанавливая приложения, которых нет ни в App Store, ни в Google Play, ни в AppGallery, вы подвергаете опасности сохранность личных данных.
Читайте также: