Авторизация звонком для сайтов и приложений

К нам обратилось несколько клиентов, которые заказывали у нас мобильное приложение с примерно одним и тем же вопросом - как бы переделать стандартную авторизацию через СМС так, чтобы при активной раскрутке не тратить много денег на смски. Делюсь нашими наработками в этом вопросе.

В закладки

Генеральный директор Bright Mobile рассказывает о новом способе авторизации.

Зачем это, вообще, нужно?

Сперва, мне показался такой запрос достаточно странным, клиенты рассчитывали на раскрутку до 100-200 тыс пользователей. Учитывая, какой нужно бюджет на такую рекламу, то затраты в 1,5р на авторизацию каждого пользователя вроде не большие деньги. С другой стороны, 150-300 тыс на дороге тоже не валяются, а учитывая, что за весь LTV человек может авторизоваться несколько раз (стёр куку, удалил и поставил приложение, был авторизован в приложении и решил авторизоваться на сайте) то сумма с 1,5р за пользователя вырастают до 8-10р. А общие затраты вырастают до 800 тыс - 2 млн.р. А это уже совсем не смешные деньги.

Получив такую обратную связь начал изучать кто ещё жалуется на неудобство авторизации СМС. Нашёл две проблемы и обе влияют на конверсию из установки в авторизацию.

Проблема №1. Куда я попал? Она чаще всего присутствует на малоизвестных проектах, которые сразу при входе просят авторизоваться по СМС. Не доверяя проекту пользователю достаточно тяжело расстаться со своим номером телефона - многие боятся, что начнут звонить спамеры.

Проблема №2. Я устал, я ухожу... Сама авторизация по СМС для человека достаточно затратная с точки зрения количества прилагаемых усилий. Все давно уже выучили, что чем меньше кликов, тем выше конверсия. Давайте посчитаем действия, которые должен выполнить пользователь, чтоб авторизоваться по СМС:

Получается, чтобы начать пользоваться сервисом, человек должен правильно выполнить все 6 действий и, при этом, мотивация получить итоговый результат должна быть крайне сильна. Многие владельцы приложений рассказывали, что из установки в регистрацию доходят всего 40% клиентов. Т.е. 3 из 5 человек, поставили приложение и передумали пользоваться, увидев авторизацию по СМС (за привлечение которых, между прочим, заплатили).

Что есть на рынке, кроме СМС

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

Авторизация по соцсетям решает обе проблемы - профиль не так страшно запалить, а действий для авторизации нужно сильно меньше - тыкнуть на соцсеть, подтвердить доступ в приложении, да и всё. Но в этом подходе есть один недостаток. Чаще всего, для владельца приложения, всё-таки, важно иметь номер телефона пользователя, причём, номер подтверждённый. В случае авторизации по соцсетям часто старый номер либо утрачен, либо, вообще, использовался арендованный фейк. Проверить рабочий это номер или нет в рамках авторизации невозможно.

Регистрация / авторизация по email, отчасти, похожа на СМС-авторизацию. Так же нужно дождаться стороннюю службу, подтвердить, а потом ещё помнить логин и пароль, либо восстанавливать доступ. Номера телефона, в этом случае, у нас нет, а холодные письма давно уже воспринимаются, как спам.

Рассмотрев все эти варианты мы пришли к такому идеальному конечному результату, который ждут пользователи:

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

Евгений Малаховский
Ведущий программист RTPlatform

Полученное решение лежало на стыке технологий.

Техническая реализация

В авторизации, как и в случае СМС задействованы 3 звена - телефон клиента, АТС и БД сервера, где хранятся учётные записи пользователей, а usercase будет следующим:

1. Клиент вводит номер телефона

2. Жмёт кнопку "Авторизация"

3. На сервер идёт запрос, что такой-то логин хочет авторизоваться

4. Пользователь звонит на номер сервиса

5. АТС определяет его номер и сбрасывает звонок

6. АТС передаёт в БД сервиса факт звонка

7. БД сравнивает логин изначального запроса и номер, возвращённый АТС и высылает в приложение клиента подтверждение или отказ в авторизации

Схематично это выглядит так:

Получается, что пользователь делает всего три действия:

1. Вводит номер телефона

2. Жмёт кнопку авторизоваться

3. Разрешает вызов на номер сервиса

После этого, звонок сбрасывается и пользователь авторизован. Кроме того, реализовали проверку, когда кто-то может отправить Ваш номер телефона и ждать, когда вы позвоните.

Конкуренты

Удалось нагуглить несколько похожих сервисов, но авторизация звонком работает иначе и, на мой взгляд, геморройнее. Вот перечень основных:

  • Call Password. Авторизация проходит в обратную сторону - сервис тебе звонит, а ты должен запомнить и ввести последние 4 цифры номера и стоит 15 коп за авторизацию
  • Authentication by call. Логика, как у нас, но внедряешь сам через подключение API и на сайте нет публичной тарификации

Я думаю, что логичнее брать деньги просто за установку и передавать владельцу всю инфраструктуру (использовать его базу и АТС). При этом, у владельца будут дополнительные платежи только за АТС (600р./мес за 8-800 и 120р./мес за московский номер). Других трат нет.

Пишите мне в личку или на сайт у кого есть аналогичная задача - собрать номера, но облегчить авторизацию для клиентов.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Денис Гордиенко", "author_type": "self", "tags": [], "comments": 42, "likes": 22, "favorites": 29, "is_advertisement": false, "subsite_label": "tribuna", "id": 64151, "is_wide": false, "is_ugc": true, "date": "Thu, 11 Apr 2019 12:22:09 +0300", "is_special": false }
Объявление на vc.ru
Трибуна
Как совершить революцию в традиционном на первый взгляд рынке. История PerseiLine, производителя товаров для животных
Российский зоорынок начал формироваться в конце девяностых, когда телевизор впервые показал, что кормить питомцев…
0
{ "id": 64151, "author_id": 127886, "diff_limit": 1000, "urls": {"diff":"\/comments\/64151\/get","add":"\/comments\/64151\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/64151"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199116, "last_count_and_date": null }
42 комментария
Популярные
По порядку
Написать комментарий...
3

Не раскрыта тема, зачем бизнесу номер телефона. Поди, слать такой же холодный спам?

Ответить
2

Схема с колл пассворд выглядит лучше. Это гарантировано бесплатно, достаточно привычно (много где так регистрация в публичных вайфай происходит).
В вашей схеме пользователи могут опасаться звонить куда-то - вдруг трубку возьмут, какая будет тарификация? Вдруг мошенники и это платный номер? И т.д.

Ответить
1

я думаю 8-800 снимет все возражения о тарификации

Ответить
1

Спасибо, пока вижу решением такой проблемы краткий нотис в форме авторизации - мол позвони на системный номер, трубку сбросят и использование 8-800 для большей уверенности

Ответить
1

А почему не реализовать звонок клиенту, приложение видит входящий от вашего номера, сбрасывает звонок и авторезирует пользователя.

Просто логика "пользователь не доверяет оставлять свой номер телефона" никуда не девается и в вашем случае... Я бы так же не хотел звонить куда и кому попало.

Ответить
0

Если я на своём телефоне укажу Ваш номер и система позвонит Вам, то вы либо возьмёте, либо сбросите трубку, а я получу доступ к вашей учётке. Как будет в этом случае осуществляться персонализация?

Со вторым тезисом согласен

Ответить
0

Да не подумал, тогда робот диктует пин

Ответить
0

есть такие сервисы, стоят где-то 50ком за звонок. Учитывая, что используется самая дешёвая телефония, то качество звонка - Г. Приходится слушать по три раза стапливая те же 1,5р. Да и сам способ мне видится более громоздким, чем исходящий вызов без факта общения

Ответить
0

Оставьте исходящий вызов, но рекомендую дать людям выбор. Смс или звонок, это повысит доверие, как мне кажется

Ответить
0

Сейчас только сообразил, если вы укажите чужой номер, то приложение не увидит входящего звонка с нужного телефона, а значит не подтвердит номер телефона.

Ответить
1

при > 300 000 смс цена будет около 50 копеек за смс
Зачем бизнесу номер телефона, если звонить и/или слать sms дорого?

Ответить
0

Цена 0,5 при краткосрочном выкупе пакета. Если идёт 5-10 тыс регистраций в мес, то тариф менее демократичный.

Про дорого - это вопрос к тому для чего конкретно дорого. Просто за регистрацию - это дорого, если привлечь клиента на акцию или покупку высоко маржинального товара, то дёшево.

Ответить
1

Как я понял, стоит вопрос - как подтверждать номер клиента и за это как можно меньше заплатить. СМС стоит около 1.50 руб. - 2.00 руб. CallPassword стоит 0,15 руб. это в 10-ть раз дешевле. По логике одно и тоже - пользователь сделал одинаковое действие, указал свой номер. В дальнейшем он передаёт пароль или из смс или из истории звонков.

Когда пользователю надо позвонить, это уже немного другая механика. Дополнительная точка отказа.

Самый лучший вариант, это когда приложение имеет доступ к истории звонков. Если в истории звонков есть номер-пароль, то приложение подтверждает номер самостоятельно и переходит на другой шаг.

Решение с входящим звонком CallPassword, мне кажется наиболее удачным с точки зрения механики и цены.

Ответить
0

А почему пуши не используют для этой задачи? Иногда встречаю, но массово вроде не используются

Ответить
0

для подтверждения железки, не нужен Push, это можно сделать без участия пользователя

Ответить
0

пуши не дают подтверждения номера телефона. Я такое встречал у Модуль-банка, когда приложение уже прошло двух-факторную авторизацию, то для подтверждения отправки платежа используют отправку пуша с кодом

Ответить
0

Разрешает вызов на номер сервиса

На этом этапе лично я бы ушел. Хотя, скорее всего, ушел бы еще на этапе обнаружения звонков в разрешениях приложения.

Входящее СМС бесплатно всегда. Да, теоретически это может быть подписка какая-нибудь, но это надо прям постараться. А вот звонок...откуда вы знаете какой тариф у пользователя? Может ему этот звонок выйдет платным.

Ответить
0

Звонок сбрасывается до факта соединения. Проще говоря "трубку не берут". Планируем, что 8-800 позволит избежать этот страх.

Ответить
0

Это вы знаете, а условный "я" не знаю и могу испугаться. Конкретно я вообще стараюсь не пользоваться приложениями, у которых есть доступ к звонкам или отправке СМС.

Ответить
0

с разрешения пользователя само собой, обычная ссылка типа tel:

Ответить
0

Во-первых "100-200 тысяч пользователей" - это фантазии клиентов. Они будут, видимо, удивлены, когда пользователей будет в лучшем случае 5-10% от их ожиданий.

Второй непонятный момент - откуда ценник в 1.5р? Насколько я помню, ранее в одном из сервисов мне одно смс обходилось в 20-30 копеек

Ответить
0

видимо, это было очень давно.

Ответить
0

Не очень давно, но я кажется понял в чем дело. У меня была стоимость за большой пакет смс для рассылок, полагаю в этом дело. Однако не думал, что разница в стоимости настолько колоссальная.

Ответить
0

Разница будет огромной. При самых начальных объемах стоимость действительно ~1.5 руб. и это достаточно низко :)

Ответить
0

По отдельным операторам доходит до 2,2р

Ответить
0

Входящий звонок клиенту может быть платным, даже если это НЕ роуминг.
Ну и например в моем случае если ваше приложение сможет убедить что надо дать позвонить...я сменю пару настроек и дам это сделать. Номер вы получите. Виртуальный от Тинькова (https://www.tinkoff.ru/mobile-operator/form/olv/virtual/ , который меняется на раз, заставить телефон делать исходящий с него можно, у других операторов аналогичная услуга есть но там входящие сложно подключить).

В реальности - если мне как пользователю покажется что номер тут реально не нужен - вероятно в Play Store улетит жалоба на попытку обхода Call permessions policy (не факт что это пройдет - формального нарушения нет ведь).

Ответить
0

А подтвердить номер, позвонив с сип телефонии и подставив любой caller id, можно же получается

Ответить
0

я не нашел работающих методов это сделать

Ответить
0

В нашей телефонии можно сделать caller id любого мобильного, подтвердив владение номером через смс. Это добросовестная компания, которая не предоставляет динамический caller id кому попало. Но есть и компании, которые могут дать доступ к динамике. В этом случае вашу авторизацию можно легко обойти, наплодив аккаунтов. Другое дело, когда абоненту совершается входящий звонок с предложением ввести последние цифры номера для подтверждения, тут уже не подделаешь, но надо защищаться от флуда.

Ответить
0

интересно, а можете поделиться недобросовестной компанией?

Ответить
0

Точных названий не знаю, но по моей просьбе для теста товарищ мне звонил с любого мобильного номера.

Ответить
0

понимаю что вопрос конфиденциальный, но мне нужно удостовериться, что это реально. Написал вам в ВК.

Ответить
0

Это реально. Нужен рабочий PBX только

Ответить
0

Для выполнения ФЗ при авторизации в публичных сетях wi fi подойдет, но не секьюрно

Ответить
0

В чем не_секьюрность? какие угрозы?

Ответить
0

Угроза только в спам ботах, которые могут наплодить аккаунтов в приложении и ты не будешь знать, где живой, а где спам

Ответить
0

А как именно они "наплодят"?

Ответить
0

Через сип каналы с динамическим коллером. Я писал под комментарием чьим-то

Ответить
0

Есть сервис duo mobile login - он звонит тебе на мобильный и нажатием на любую клавишу ты авторизуешь действие.
Если у тебя есть приложение - тебе приходит пуш который ты подтверждаешь.
Оба варианты просты для клиента.

Ответить
0

Не знаю, насколько это распространенная модель в России, но у нас в Беларуси многие пользуются пакетами мобильных услуг, например: у меня есть месячный пакет безлимитного трафика, сколько-то смс и 100500 исходящих на все белорусские сети. Чистых денег на счету — всегда ноль (в этом нет необходимости), поэтому на короткий, зарубежный, любой другой «особенный» номер я просто не смогу позвонить, даже если он бы и сбросил в конце: мой оператор оборвёт звонок в самом начале «из-за недостатка средств».

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

Я уже молчу про возможность подмены номера (писали выше) и про этическую составляющую: в 2019 году кажется верхом неприличия просить пользователя позвонить куда-либо: с мессенджерами обычные звонки в принципе ушли в очень интимную зону приватной жизни, а в воздухе ещё огромное количество историй мошенничества с платными номерами и подписками — от нулевых и до наших дней.

Так что это лишь моё мнение, но я не знаю, какого уровня должна быть компания, чтобы я доверил ей исходящий вызов. Microsoft, Apple и Google? — возможно. Facebook? — уже больше сомнений. NoNameStartup? — пфф, до свидания.

Ответить
0

Решение Нью-Тел лучше. Звонки проходят на любые номера даже иностранные, а стоимость одна и та же. Жирный плюс который делает решение callpassword лучшим.

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }