Android in app пример

Implement In-app Update In Android

Make sure every user of your app is on the new version.

Apr 6, 2020 · 8 min read

In this article, we will learn about the In-app update feature in Android what is all about In-app update, what are the benefits of using the In-app update in your android application. Recently I’ve been working on a product in which I need to Implement an In-app update Why we need to Implement this?.

As a Developer we always want our users to have the updated version of their application but there are a lot of people who actually turned off their auto update from google play store and he/she doesn’t know about any update available or not.

To overcome the problem Google Introduced this feature called In-app update from this feature you can easily prompt the user to update the application and with the user permission you can update the application also while updating the app user can be able to interact with the application. Now the user doesn’t need to go to google play store to check there is any update available or not.

What is In-App Update:

An In-app update was Introduced as a part of the Play Core Library, which actually allows you to prompts the user to update the application when there is any update available on the Google Play Store.

There are two modes of an In-app update.

  • Flexible Update
  • Immediate Update

Flexible Update:

In Flexible update, the dialog will appear and after the update, the user can interact with the application.

This mode is recommended to use when there is no major change In your application like some features that don’t affect the core functionality of your application.

The update of the application is downloading in the background in the flexible update and after the completion of the downloading, the user will see the dialog in which the user needs to restart the application. The dialog will not automatically show, we need to check and show to the user and we will learn how later.

Benefits:

The major benefit of the flexible update is the user can interact with the application.

Источник

Android In-app purchasing: платное отключение рекламы в своём приложении

Много раз уже просили написать статью о том, как в приложении реализовать платное отключение рекламы. По In-app уже были статьи на хабре. Правда, они старую версию API рассматривали. В принципе, новая версия не особо то и отличается от старой. Была похожая статья, но там больше именно про отображение рекламы рассказывалось, а второй части статьи мы так и не увидели. Как оказалось, многим до сих пор интересен этот вопрос, решил написать как это реализовать в своём приложении.

In-App Purchase представляет собой сервис покупки виртуальных товаров внутри приложения (например игровой валюты, новых уровней и т.д.). Применяется он в основном в играх, в тех случаях, когда встает вопрос о необходимости заработка на своем творении.

В данной статье рассмотрю как можно использовать In-App Purchase для отключения рекламы в своём приложении.

Реклама в приложении

В принципе, можно взять любую площадку. Возьмём, к примеру AdMob. Я для удобства обычно подобные вещи в обёртки запихиваю, чтобы при смене площадки, если потребуется, почти ничего не пришлось менять. Обёртки для рекламной площадки должны реализовывать интерфейс:

Тогда обёртка для AdMob будет выглядеть примерно так:

Тогда инициализация рекламы будет такой:

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

In-app purchasing или внутренние платежи в приложениях

Для того, чтобы работать с системой покупок необходим файл IMarketBillingService.aidl. Лежит он в /user/android-sdk-linux/extras/google/play_billing директории с SDK. Положить файлик надо в com.android.vending.billing пакет вашего приложения.

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

Читайте также:  Android ips экран 2 sim

Для работы необходимо добавить разрешение в AndroidManifest.xml:

Очень помогает официальная документация и пример из SDK.

Необходимо определить ключик в приложении – PublicKey, полученный при регистрации аккаунта на Android Market
Определяем IabHelper и инициализируем. Если удачно, то пытаемся восстановить покупки.

mGotInventoryListener – слушатель для восстановления покупок.

Теперь надо, собственно, саму покупку реализовать:

SKU_ADS_DISABLE – идентификатор товара, который вы создали в адмике Google Play. mPurchaseFinishedListener – слушатель:

Стоит отдельно поговорить о методе по верификации:

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

В принципе всё, теперь при запуске приложения просиходит проверка настроек (куда мы сохранили, что отключили рекламу):

После чего реклама уже не будет показываться.

Тестирование покупок

Сейчас довольно удобно тестировать своё приложение. Можно залить .apk как альфа/бета версию и опубликовать. При этом можно назначить группу в Google+, которая будет иметь возможность к тестированию. Если вы публикуете альфа или бета версию приложения, то в маркете она не появится, иметь доступ будет только эта группа.

Тестеры смогут осуществлять покупки. Деньги будут списываться без комиссии и будут возвращены после 15 минут после покупки. Так что, не беспокойтесь. Вот только у вас не получится протестировать приложение, если ваш аккаунт на устройстве и аккаунт издателя один и тот же =/

Полностью рабочий пример можете посмотреть на гитхабе.

Источник

Покупки в Android приложении — Play Billing Library

И как это до сих пор на Хабре нет статьи об этом? Не дело, надо исправлять.

Есть 2 способа добавить In-App покупки в Android-приложение — старый и новый. До 2017 года все пользовались библиотекой от anjlab, но с июня 2017 года ситуация изменилась, Google выпустила собственную библиотеку для внутренних покупок и подписок — Play Billing Library. Сейчас последний считается стандартом.

Play Billing Library это очень просто.

Добавьте разрешение в манифесте.

Создайте инстанс BillingClient и начните соединение.

В метод onPurchasesUpdated() мы попадаем когда покупка осуществлена, в методе onBillingSetupFinished() можно запросить информацию о товарах и покупках.

Запросить информацию о товарах. Поместите querySkuDetails() в onBillingSetupFinished().

В коде вы могли заметить понятие SKU, что это? SKU — от английского Stock Keeping Unit (идентификатор товарной позиции).

Теперь в mSkuDetailsMap у нас лежит вся информация о товарах (имя, описание, цена), зарегистрированных в Play Console данного приложения (об этом позже). Обратите внимание на эту строку skuList.add(mSkuId);, здесь мы добавили id товара из Play Console, перечислите здесь все товары, с которыми вы хотите взаимодействовать. У нас товар один —sku_id_1.

Все готово к тому, чтобы выполнить запрос на покупку. Передаем id товара. Запустите этот метод, например, по клику на кнопку.

Теперь, запустив этот метод, вы увидите вот такое диалоговое окно (прим. картинки из Интернета).

Теперь если пользователь купит товар — его ему надо предоставить. Добавьте метод payComplete() и осуществите в нем действия, предоставляющие доступ к купленному товару. Например, если пользователь покупал отключение рекламы, сделайте в этом методе так, чтобы реклама больше не показывалась.

Все хорошо, но если пользователь перезапустит приложение, наша программа ничего не знает о покупках. Надо запросить информацию о них. Сделайте это в onBillingSetupFinished().

В purchasesList попадает список всех покупок, сделанных пользователем.

Делаем проверку: если товар куплен — выполнить payComplete().

Готово. Осталось это приложение опубликовать в Play Console и добавить товары. Как добавить товар: Описание страницы приложения > Контент для продажи > Создать ограниченный контент.

Примечание 1: Вы не сможете добавить товар пока не загрузите билд приложения в Play Console.

Примечание 2: Чтобы увидеть диалоговое окно о покупке, вам надо загрузить билд в Play Console, добавить товар и подождать какое-то время (

30 минут — 1 час — 3 часа), пока товар обновится, только после этого появится диалоговое окно и можно будет осуществить покупку.

Примечание 3: Ошибка Please fix the input params. SKU can’t be null — товар в Play Console еще не успел обновиться, подождите.

Читайте также:  Ttl для андроид чтобы раздать

Примечание 4: Вы можете столкнуться с ошибкой Error «Your transaction cannot be completed», в логах как response code 6 пока будете тестировать. По каким причинам это происходит мне точно неизвестно, но по моим наблюдениям это происходит после частых манипуляций с покупкой и возвратом товара. Чтобы это починить перейдите в меню банковских карт и передобавьте вашу карту. Как этого избежать? Добавьте ваш аккаунт в Play Console в качестве тестировщика и покупайте только с тестовой карточки.

(Кстати, на Хабре работает система донейтов по кнопке под статьёй — прим. модератора).

Источник

Как внедрить in-app подписки в Android-приложения: советы и рекомендации

С каждым годом требования к in-app подпискам в мобильных приложениях в App Store и Google Play меняются, становится все сложнее учесть их с первого раза и не получить серию реджектов, тем самым откладывая релиз порой на несколько месяцев. Если про требования для App Store уже достаточно много публикаций (см. здесь или здесь), то с правилами in-app подписок для Google Play все еще иногда возникают вопросы.

Мы, команда из Центрального Маркетинга Mail.ru Group, решили разобраться в этом подробнее и поделиться рекомендациями по внедрению in-app подписок. По нашему наблюдению, нередко пользователи оставляют большое количество негативных отзывов (и, как следствие, у приложения снижается рейтинг), где уточняют будет ли списываться сумма за полную версию продукта ежемесячно или единоразово, как отменить подписку, в какой именно момент спишутся деньги, почему деньги продолжают списываться и другие подобные вопросы. А поддержка и вовсе иногда может не справляться с объемом запросов.

И вот, в апреле 2020 года Google обновил требования к платным in-app подпискам и обязал любые новые приложения или обновления приложений, опубликованные после 16 апреля 2020 года соответствовать требованиям последней версии Правил программы для разработчиков. Согласно данным правилам, приложениям, которые были опубликованы до 16 апреля 2020 года предоставляется 60 дней с этой даты, чтобы начать соответствовать новым требованиям, то есть до 16 июня 2020 года.

Мы уверены, что новые меры платных in-app подписок в Google Play помогут сделать условия получения услуг для пользователя более прозрачными, а также построить более доверительные отношения между пользователем и разработчиком. Мы подробно изучили данные требования, проанализировали более 100 случайных приложений и хотим поделиться своим опытом и рекомендациями с читателями.

    Старайтесь указывать, что оплата за платную in-app подписку будет списываться каждый расчетный период

Иногда пользователи уточняют у разработчиков, будет ли списана сумма единоразово или же за каждый расчетный период. Если в вашем приложении есть обе модели: единоразовая оплата (т.е. «навсегда») и платная in-app подписка, лучше указать, что в первом случае оплата происходит только один раз, а во втором — за каждый расчетный период.

Ниже мы привели пример реализации, где четко прописаны условия оплаты разных in-app покупок.

Не забудьте проверить отображение цены на экране in-app подписки

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

Если полная стоимость подписки явно не выделена на экране, пользователь может не понять, что при оформлении подписки будет списано не $4, а $49.

Ниже мы привели два примера реализации: слева — указана цена за год, справа — указана цена за 1 месяц в опции про 12, что команда ревьюеров может счесть за нарушение.


Добавьте информацию о предложении и условиях использования in-app подписки

Она чаще всего указывается разработчиками в нижней части экрана. При этом, по нашему опыту, необязательно, чтобы текст был виден полностью (иногда это физически невозможно) и достаточно показать превью первых нескольких строк и остальную часть раскрывать ниже (или вовсе, открывать условия по ссылке). Например, в тексте могут быть указаны условия предоставления пробного периода и когда будут списаны средства со счета, информация об автоматическом продлении и сроках, правила отмены и управления in-app подпиской.
Не забудьте добавить опцию закрытия экрана предложения in-app подписки

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

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

Читайте также:  Expo android studio emulator

Кстати, несколько приложений при нажатии на кнопку «Закрыть» показывают особенное «one-time» предложение, что может повысить конверсию в покупку. Примеры реализации ниже:


Проверьте приложение на мислид с бесплатной пробной версией

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

Ниже приведен пример, где за предложением «Попробовать бесплатно» отсутствуют какие-либо условия.

Кстати, однажды на одном из наших UX-тестирований выяснилось, что для собственного спокойствия пользователи хотели бы видеть дополнительную информацию о конкретной дате, когда спишутся деньги. Например, такие фразы как «Не переживайте! Средства будут списаны не ранее 01/08», или «Вы можете отменить подписку в любое время» внушают доверие пользователям и они охотнее оформляют пробную версию.
А если у вас вводная цена? Подумайте о том, как лучше рассказать о ее условиях

Например, если обычная стоимость подписки $4,99 в месяц, но для большего привлечения новых пользователей вы предлагаете первые три месяца за $1, стоит заранее проинформировать об этом пользователя.
Расскажите о правилах отмены in-app подписки

Советуем убедиться, что ваше предложение раскрывает информацию об отмене и управлении in-app подпиской. Согласно правилу Google Play, при отмене купленной в приложении in-app подписки возврат средств за текущий расчетный период не производится, но контент остается доступным на протяжении текущего расчетного периода. После in-app подписка будет отменена и повторных списаний не будет.
А также, не забываем про добавление возможности восстановить покупки

Для улучшения пользовательского опыта рекомендуем добавить возможность восстановить покупки (опцию можно реализовать, например, в настройках приложения или на самом экране предложения). Так, поменяв телефон, пользователь сможет быстро восстановить расширенную версию приложения.

Со своей стороны, Google также ввел новшества, чтобы напрямую предоставлять пользователям более полную информацию о платных in-app подписках. Например, теперь пользователи получают электронные письма до того, как закончится бесплатная пробная версия или ознакомительная цена, или когда будет автоматически продлена долгосрочная подписка на 3, 6 или 12 месяцев. Также придет напоминание, что удаление приложения не приведет к автоматической отмене подписки.
И, конечно же, важна локализация условий использования и предоставления предложения

Если ваше приложение локализовано на различные языки, то мы рекомендуем позаботиться и о локализации правил и условий использования in-app подписки.

Ниже мы привели такой пример из приложения. А по ссылке вы найдете локализацию условий одного из наших приложений на 12 языков.

Заключение

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

Также у разработчиков появилось несколько новых точек оптимизации in-app подписок в приложении. Уже сейчас доступна возможность уменьшить процент отмены подписок благодаря опции «преимущества». При намерении отменить оплату у пользователя появится экран с перечислением тех самых преимуществ, которые разработчик указал в специальном поле в настройках товара в Google Play Console. Кроме того, есть возможность генерировать кастомные промокоды на расширенную версию приложения. В отличие от текущих одноразовых промокодов, новые промокоды могут быть активированы сразу несколькими пользователями. Это позволит специалистам сферы маркетинга использовать кастомные промокоды в рекламных кампаниях для более эффективного привлечения пользователей.

Кстати, проанализировать эффективность in-app подписок можно через современные системы аналитики, например, через платформу myTracker, где можно проводить разбивку на триальные подписки, повторные подписки, конверсию, количество продлений подписок, доход с подписок в разрезе атрибуции и другие метрики. Коллеги подготовили гайд, в котором вы узнаете, на каких аспектах приложения вам следует сфокусироваться для повышения прибыли при работе с подписками.

Будьте в курсе всех изменений, направленных на оптимизацию in-app подписок в вашем продукте, а также тщательно проверяйте требования платформ перед тем, как отправлять новую версию на модерацию. Это может помочь предотвратить реджекты и тем самым сэкономить время, чтобы начать зарабатывать как можно раньше, сохранить высокий рейтинг приложения, а также узнать о новых возможностях для роста, например, через вышеуказанные кастомные промокоды.

Источник

Оцените статью