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

    Песочница

    Как мы писали приложение для Facebook

    Как сделать приложение для социальной сети? Как сделать так, что бы оно было популярным? Почему из сотен тысяч приложений популярными становятся только единицы?

    Если подходить к этому формально, то нам хватило 4 человека и две недели времени. Сегодня это сделать проще, чем завтра. Написав самое простое приложения для facebook или для vkontakte, каждый получит не только опыт разработчика, но и возможность монетизировать свой проект, сделав его успешным и многопользовательским. Это не так сложно, как кажется на первый взгляд. Мы расскажем в статье всякие полезности, которые выяснили в ходе создания собственного приложения Flickr Photo Quiz (FPQuiz). Опробовать его в деле можно тут apps.facebook.com/flpquiz/game.php.
    image
    Основные моменты, которым следует уделить внимание.
    Прежде, чем начать что-то делать, нужно разобраться, что для этого нужно и кто может помочь. Конечно же, создание приложения проще всего разделить на две большие части:

    1. Разработка

    1.1 Дизайн.
    В данном случае простота и удобство интерфейса ставятся на первое место. Минимум лишних деталей превращается в максимум дружелюбности к пользователю.

    1.2 Серверная и клиентская части
    Основные языки программирования и библиотеки, которыми мы пользовались сами.

    1.3 Верстка.
    Единственная проблема – это тупость разных браузеров. Тут нет секретов.

    2. Продвижение

    2.1 Раскрутка.
    6 правил, при выполнени которых количество пользователей будет расти по экспоненте. Принцип «пришел, сделал, вышел», регулярное возвращение пользователей в приложение, принцип максимума дружеских связей, завлекающий аватар и красивое название, рейтинги и feedback с пользователем

    2.2 Монетизация
    Виртуальная валюта и возможности, которые может дать только разработчик, которому нужно за это заплатить.
    Кроме рассказа о нашем приложении, в конце будет

    2.3 Бонус.
    Можно скачать и посмотреть наше исследование и выводы, сделанные на основе полученных данных.

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

    Изначально наброски дизайна выглядели примерно так:
    image

    Нужно было выбрать какой-то один. Остановились на последнем. Он самый функциональный. Большие и понятные кнопки, обычный легкочитаемый шрифт, ничто не отвлекает от сути приложения. Далее с ним происходили некоторые метаморфозы, и текущий вариант в начале поста (или тут apps.facebook.com/flpquiz/game.php).

    Серверная и клиентская части.
    При написании серверной и клиентских частей в первую очередь у нас возник вопрос. На чем писать? Понятно, что можно разобраться в каком-то конкретном языке и что-то написать. Не учить же все подряд. Да и хочется выбрать язык, который больше всего подходит для конкретной цели. (Да никто из нас до этого не писал под web и знали мы только вузовский С++ и имели немного опыта администрирования Linux)

    Итак, для написания серверной части использовались php и библиотекой, которую предоставляет сам facebook. Достать её можно тут: developers.facebook.com/docs/reference/php/
    По сути, вся серверная часть пишется на php и используется для запроса к базам данных и для авторизации пользователя с помощью Facebook. API предоставляет доступ к данным пользователя, позволяет организовывать авторизацию юзера в приложении. По большому счету, этого уже достаточно для работы. И мы ограничились этим. Вообще же есть несколько уровней авторизации. По умолчанию запрашиваются только основные данные пользователя: имя, фамилия, где родился, где живет, пол, возраст, интересы и прочее (что он сам указывает о себе), время последнего посещения и адрес странички пользователя. Кроме базовой информации, можно запросить доступ к стене, к данным пользователя оффлайн и другое. Все это подробно описано на странице документации facebook: developers.facebook.com/docs/authentication/ т.е. получая пользователя в приложение на fb можно получить очень много разнообразной информации о нем.

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

    Клиентская часть написана полностью на Java-script с использованием библиотеки jQuery. А по сути, это просто страничка html, сверстанная под размер iframe’a, который отдает facebook для приложения. О верстке будет сказано ниже, но, забегая вперед, никаких изначальных знаний ни одного из этих языков (php/js/css/html), как уже было сказано, у нас не было. Получилось сверстать не лучшим образом, тем не менее, из самых распространенных только в Internet Explorer’е возникают некоторые проблемы. Но об этом чуть ниже. У тех, кто раньше хоть что-то писал на этих языках, шансов сделать быстрее, лучше и красивее гораздо больше!

    Общий алгоритм нашего приложения Flickr Photo Quiz таков. Фотографии и картинки приложение получает с помощью json запроса к api flickr’а с определенными параметрами, взятыми из базы данных. Например, Moscow или Asia. В противном случае, мы бы получили абсолютно случайную картинку. Далее, в зависимости от того, что мы запросили, выбирается количество очков по пятибалльной шкале, которое получит пользователь, ответив на вопрос правильно. Выбор это субъективный, так, что для кого-то вопрос в 5 баллов может оказаться очень простым. Если же игрок отвечает неверно, то у него отнимается 2 очка в любом случае, вне зависимости от того сколько бы давалось баллов при верном выборе ответа. Варианты ответов выбираются из базы данных в соответствии с тем, какой запрос был послан flickr’у. Среди ответов есть только один правильный, остальные три выбираются случайным образом из нужной категории (страны, города, части света). Ответы размещаются случайным образом.

    Ещё одна особенность приложения. Если у пользователя менее 100 очков, то, в случае неверного ответа, баллы у него не отнимаются. Это своеобразный бонус для новых пользователей. Когда человек разыгрался и набрал более 100 очков, уже начинает работать система штрафов. Приложение хорошо тем, что изображения не хранятся где-то на нашем сервере, а берутся непосредственно с flickr. Таким образом, если пользователь зайдет через месяц в это приложение, то на те же самые запросы из базы данных приложения, flickr будет выдавать уже другие картинки и не получится выигрывать, просто заучив картинки наизусть.

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

    С Google Chrome проблем не возникает никаких совершенно. Это умный браузер, создававшийся лучшими программистами. Немного хуже обстоят дела с Opera и Mozilla FireFox. Но особых трудностей с этими браузерами не возникает тоже.

    Самое трудная и непонятная задача возникает при попытках заставить Internet Explorer отображать приложение так, как нужно. Нет никаких правил, методов и алгоритмов, как это сделать. Все придется делать на глаз, методом проб и ошибок. Многие функции не работают в Internet Explorer, и приходится делать верстку конкретно под этот один браузер. И именно приходится. Потому что большинство людей, до сих пор, пользуется именно им. В остальном, это сможет сделать каждый, немного изучив основы CSS разметки.

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

    Приложение считается успешным, если им активно пользуется свыше миллиона человек. Критическая масса для существования приложения – 100 тысяч пользователей.
    У самых успешных приложений социальных сетей более пяти миллионов пользователей. Это приносит хороший стабильный доход.

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

    • Принцип «пришел, сделал, ушел».
    Этот принцип отлично демонстрируется в приложениях типа Ферма. Зашел, вскопал и полил грядки, собрал урожай и вышел. Растет и созревает урожай сам, без участия пользователя. Это основной геймплей социальных игр. Именно из-за отсутствия этого принципа лидеры традиционных игр не смогли стать лучшими в социальных игровых приложениях. Традиционные игры захватывают, но отнимают кучу времени. Поэтому подобные игры быстро набирали аудиторию, а потом также стремительно теряли её.

    • Регулярное возвращение пользователей в приложение.
    Цель разработчика – получить максимум прибыли. Много новых пользователей – это хорошо. Но и «старыми» раскидываться нехорошо. Заставляйте их заходить снова и снова. Ферма послужит отличным примером. Если вовремя не зайти в приложение, то урожай сгниет, испортится или его украдут. Можно давать бонусы за частое появление в игре, например, в игре Покер за ежедневное посещение начисляется дополнительные фишки, на которые можно играть в казино. Таким образом, человек может иметь большой счет, не только постоянно выигрывая, но и просто ежедневно заходя в само приложение. Многие заходят в такие приложения каждый день ради очков, а потом это просто входит в привычку.

    • Максимальное использование дружеских связей.
    Кнопка «пригласить друга» должна быть обязательно. Кроме того приложение должно работать с друзьями игрока не только напрямую, но и косвенно. Например, приложение публикует на стену друга какую-то чудо-штуку, коктейль, милого котенка, поздравительную открытку, или просьбу о помощи. Некоторые игры специально заточены на групповую игру или дуэли. Многие приложения дают бонусы за приглашенных друзей. Это отлично работает.

    • Громкое название и завлекающий аватар.
    Красивая или интересная картинка на стене друга или в новостях служит хорошим стимулом посмотреть, что скрывается внутри. Тут главное не переборщить и не превратиться в спам-рассылку. Как известно, большинство приложений перед тем, как загружаться, запрашивают у пользователя разрешение на допуск к личной информации. Цель яркого интригующего аватара – не дать пользователю выйти до того, как приложение начнет загружаться.

    • Рейтинг.
    Без продуманной системы рейтингов успех не придет. Нужно чтобы пользователи мЕрились чем-то. Количеством очков, силой, прокаченностью персонажа, местом в общем рейтинге или среди друзей. Простой принцип «Кто круче и у кого больше» работает безотказно всегда. Люди всегда хотят знать, какое место они занимают среди остальных. Чем больше различных мерил и рейтингов, тем лучше. Благодаря системе рейтингов, просыпается соревновательный дух, дух соперничества, и это заставляет его заходить в приложение ещё и ещё раз. Этот пункт важен, кроме прочего, тем, что именно благодаря ему по бОльшей части можно монетизировать свое приложение.

    • Постоянный feedback с пользователем.
    Человеку всегда нужно напоминать кто он такой, чего он достиг, до чего ему осталось ещё несколько шагов, и что он сможет получить в ближайшем будущем. Так фидбэк нужно время от времени посылать на стену пользователя. И чем красочнее он будет, тем лучше. Мало того, что вы напомните участнику вашего приложения, что он уже многого добился и заманите его поиграть снова, так ещё и его друзья, увидев это, возможно, захотят посоревноваться или просто попробовать и станут новыми пользователями. Между прочим, некоторые приложения приобретали свою популярность только благодаря такой вирусной рекламе.

    Монетизация.
    Если вы хотите, чтобы ваше приложение приносило стабильный доход, нужно несколько вещей:
    • Много активных пользователей (успешное приложение)
    • Развитая система рейтингов
    • То, за что люди будут платить реальные деньги
    Чаще всего деньги берутся за то, чтобы продвинуться в рейтинге быстрее, дополнительные бонусы или временные особые возможности, которых нет у других пользователей.

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

    Бонус.
    Перед тем, как мы начинали делать приложение, перед нами стоял вопрос. Для какой социальной сети делать приложение, и каким оно должно быть. Чтобы сделать выбор, мы провели исследование по шести пунктам:
    1. Общие данные по социальным сетям
    2. Обзор приложений
    3. Компании-разработчики
    4. Финансовые показатели
    5. Методы продвижения приложений
    6. Прогнозы

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

    Скачать презентацию со всеми материалами нашего исследования можно, пройдя по этой ссылке www.slideshare.net/DmitriyDyadin/ss-10273462. В ней приведены различные статистические данные, сравнительные характеристики, графики, мнения, прогнозы аналитиков и кое-что ещё, что поможет в создании успешных приложений для социальных сетей.

    Наше приложение Flickr Photo Quiz создавалось для facebook. Все зарегистрированные в facebook пользователи могут с ним ознакомиться, вбив в строку поиска «fpquiz» или пройдя по ссылке apps.facebook.com/flpquiz/game.php.