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

Google Play

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

Услышав о пропаганде монополии Google Play, в эту статью стремительно врывается Евгений Зобнин со своей старой, а точнее — классической статьей «Отвязываем смартфон от всевидящего ока Google».

Как и в любом джентльменском клубе, в Google Play есть свои правила поведения. Так, продажа встроенного контента обязана быть организована через In-app Billing API — компания будет выступать посредником, забирая себе процент от уплаченных пользователями денег.

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

 

In-app Billing v. 3

Google активно работает над своими продуктами: непопулярные закрываются, а востребованные регулярно получают обновления. Для In-app Billing уже доступна третья версия, которую мы сегодня и будем использовать. И, как это принято у крупных компаний, предыдущие версии API быстро перестают поддерживаться. Если у тебя есть продукт с интегрированной старой версией In-app Billing, рекомендую быстрее обновиться.

Надо сказать, что обновление получилось довольно интересным. Самое главное, теперь продать пользователю можно только два вида контента: подписку или единовременную покупку.

  • Подписка. Пользователь будет постоянно платить за пользование приложением, внося деньги каждый месяц или раз в год. Интервалы платежей настраиваются разработчиком, и тут есть где продемонстрировать талант маркетолога.
  • Единовременная покупка. Это возможность один раз получить с пользователя деньги за какую-то фишку твоего приложения: доспехи для персонажа, дополнительные функции или отключение рекламы. При этом для единовременных покупок введен параметр «потреблен» (consumed) — индикатор того, получил ли пользователь оплаченный контент или нет. Как только услуга будет предоставлена, тот же товар можно будет продать еще раз.

Кроме обновленных правил продаж, Google обещает в новой версии API еще более надежную и стабильную работу механизма обмена данными между Android-приложением и сервером Google, принимающим деньги пользователя. Звучит все это довольно сложно, но скоро ты поймешь, что получать деньги в действительности не так трудно.

 

Гении копируют

Сейчас будет приятный сюрприз для начинающих разработчиков: компания Google приготовила множество небольших приложений, показывающих, как правильно использовать возможности экосистемы Android. И это очень полезно: обычно после чтения документации появляются вопросы, а ответы ищутся где-то на стороне. Демки Google всегда содержат самый актуальный код, в отличие от форума Stack Overflow, где в топе часто болтаются устаревшие, а иногда и просто плохие советы.

Работу с In-app Billing мы начнем с небольшого приложения TrivialDrive, его исходники можно получить буквально тремя кликами в Android Studio: File → New → Import sample. Это небольшая игра с продажей контента, а исходники снабжены подробными комментариями.

Набор готовых демок от Google
Набор готовых демок от Google

Чтобы разработчик точно не запутался, как правильно работать со встроенными покупками, Google самостоятельно формирует большую часть клиентского кода. Это довольно мудрое решение: учитывая деликатность финансового вопроса, все приложения в Google Play должны работать четко и без ошибок, а лучше самой компании код никто не напишет. Рекомендую пробежаться глазами по комментариям в примере — их довольно много, и все они по делу.

 

Регистрация

Продавать контент через In-app Billing возможно, только если твое приложение выложено в Google Play. Если у тебя еще нет аккаунта разработчика, немного тебя расстрою: регистрация стоит 25 долларов. Впрочем, это будет хорошим стимулом не бросать программирование, а написать качественное приложение и окупить затраты.

В дополнение к обычной предрелизной подготовке — созданию описания, скриншотов и заполнению разных формочек — требуется еще подготовить контент для продажи. Для однозначной идентификации приложения нужен открытый ключ RSA, он уже сгенерирован и ждет в разделе «Инструменты разработки».

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

<uses-permission android:name="com.android.vending.BILLING" />

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

Регистрация SKU
Регистрация SKU

У каждого товара будет идентификатор, его принято называть SKU (stock keeping unit) или идентификатором товарной позиции. Он должен быть уникальным, и его нельзя будет поменять в дальнейшем. Вообще, в этом разделе лучше сразу все сделать без ошибок — к примеру, активированную подписку в дальнейшем убрать будет нельзя.

 

Продаем свое

Конечно, изучением демки сегодня дело не ограничится, но в новый проект из нее перейдет достаточно многое. В будущее приложение нужно полностью скопировать две папки: aidl и util. Код, который за нас уже написали создатели API, значительно упростит взаимодействие с серверами Google.

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

 

UI

Начнем с фасада приложения — верстки его визуальных элементов. Они могут быть произвольными, главное, чтобы пользователи за них платили. Я воспользовался разметкой RelativeLayout и списком RecyclerView. Оформленная подписка — это стабильный доход каждый месяц, добавим такую возможность тоже.

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

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

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


2 комментария

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

Windows 10 против шифровальщиков. Как устроена защита в обновленной Windows 10

Этой осенью Windows 10 обновилась до версии 1709 с кодовым названием Fall Creators Update …