Всем привет, меня зовут Виталий, я основатель Adapty. Подписки — один из способов монетизации приложения.
С их помощью вы можете предоставить пользователю возможность получать постоянный доступ к обновляемому контенту в приложении или к предоставляемому сервису.
В отличие от обычных покупок, где Apple берет комиссию в размере 30%, при подписке эта комиссия снижается до 15%, если пользователь подписан на 1 год и более.
Важный момент: если пользователь отменяет подписку, этот счетчик обнулится через 60 дней.
Мы выпускаем серию статей, освещающих все вопросы добавления встроенных покупок в iOS:
- Внутриигровые покупки iOS, часть 1: настройка и добавление в проект. - Вы здесь.
- Покупки в приложении iOS, часть 2: Инициализация и обработка покупок.
- Покупки в приложении iOS, часть 3: Проверка покупки на стороне сервера.
- Покупки в приложении iOS, часть 4: Локальное тестирование покупок в XCode.
- Покупки в приложении iOS, часть 5: Обработка ошибок SKErrors.
- создавать покупки в App Store Connect;
- настроить подписки – указать продолжительность, стоимость, пробные периоды;
- получить список покупок в приложении
Создание покупок
Прежде чем приступить к реализации встроенных покупок, необходимо:- Платить Учетная запись разработчика Apple как физическое лицо или организация.
- Все принято соглашения в App Store Connect. Обновленные соглашения появятся в верхней части вашей учетной записи App Store Connect, и их легко обнаружить.
Для каждого из них мы сделаем пробный период в 7 дней.
На странице нашего приложения в App Store Connect откройте вкладку «Встроенные покупки» → «Управление».
На этой вкладке отображается список созданных нами покупок.
Для того, чтобы создать новую покупку, вам необходимо нажать на кнопку (+), которая расположена рядом с заголовком «Встроенные покупки».
Интерфейс для создания покупок Далее мы попадаем в диалог создания покупки.
Наш выбор — автоматически возобновляемая подписка.
Выберите пункт 3 Следующим шагом нам будет предложено создать группу подписки.
Группа подписок — это совокупность подписок, основным свойством которых является то, что пользователь не может одновременно активировать две подписки из одной группы.
Кроме того, все вводные предложения, такие как пробная версия, распространяются сразу на всю группу.
Группы необходимы для разделения бизнес-логики внутри приложения.
Давайте назовем нашу группу Премиум-доступ.
При добавлении следующей подписки интерфейс предложит добавить ее в существующую группу.
Позже вы сможете управлять группами в меню «Встроенные покупки» → «Группы подписки».
Создание группы подписки Далее настройте имя подписки
- Справочное имя — как подписка будет отображаться в App Store Connect, а также в разделе «Продажи» и в отчетах.
- Product ID — уникальный идентификатор товара, который используется в коде приложения.
Хорошая практика — указывать продолжительность подписки, чтобы потом меньше путаться в аналитике.
Добавим второй товар таким же образом, в результате наш интерфейс вкладки «Внутренние покупки → Управление» будет выглядеть так:
Две подписки в приложении
Конфигурация подписки
Покупки были добавлены, но они еще не готовы к использованию: для статуса выше установлено значение «Отсутствуют метаданные».Это значит, что мы еще не добавили информацию о цене и сроке подписки.
Мы исправим это сейчас.
Продолжительность и цены
Нажмите на продукт и настройте его.
Здесь нам нужно выбрать период (Subscription Duration).
В нашем случае выберите 1 месяц или 1 год. Затем переходим в меню настройки цен.
Вы можете гибко регулировать цены в зависимости от стран, но мы ограничимся автоматическими ценами, выбрав только цену в долларах США.
App Store Connect автоматически конвертирует цены в другие валюты, но не всегда понятно, как это происходит. Скорее всего, для ваших целевых рынков вы захотите изменить цену вручную.
Бесплатный пробный период
Один из популярных способов повышения конверсии подписки — бесплатный пробный период: пользователь активирует его и бесплатно использует приложение.Если он не отменит подписку, то после окончания срока с него списываются деньги.
Разработчики любят бесплатный период, потому что он хорошо работает. Давайте посмотрим, как его включить.
Чтобы перейти в нужное нам меню, нажмите на кнопку (+) рядом с заголовком и из выпадающего списка выберите «Создать вводное предложение»:
Выбор списка стран
Выберите продолжительность предложения.
Вы можете установить «Без даты окончания», если не хотите ограничивать себя.
Последний этап – выбор типа предложения.
Как вы можете видеть на следующем скриншоте, существует три типа:
- Платите по мере использования — использование со скидкой: пользователь платит сниженную цену в течение нескольких начальных периодов, а затем становится постоянным подписчиком по стандартным ценам.
- Плата вперед – предоплата за использование приложения: пользователь сразу оплачивает определенную стоимость и получает возможность использовать приложение определенное время, а затем еще и становится постоянным подписчиком.
- Бесплатная – бесплатный пробный период, по истечении которого пользователь может стать подписчиком.
Сохраните настройки.
Получение списка SKProducts
Проверим, что мобильное приложение видит покупки и заложим основу для дальнейшей реализации покупок.Хорошее эмпирическое правило — создать класс- синглтон для работы со StoreKit. Этот класс имеет только один экземпляр во всем приложении.
Куча Идентификаторы продукта будем хранить идентификаторы наших покупок:
Одних идентификаторов недостаточно; Чтобы полноценно использовать покупки, необходимо получить: стоимость, валюту, локализацию, скидки.import StoreKit class Purchases: NSObject { static let `default` = Purchases() private let productIdentifiers = Set<String>( arrayLiteral: "barcode_month_subscription", "barcode_year_subscription" ) private var productRequest: SKProductsRequest? func initialize() { requestProducts() } private func requestProducts() { // Will implement later } }
Возвращает всю эту и другую информацию из класса СКПродукт .
Чтобы получить эту информацию, нам нужно сделать запрос в Apple. Давайте создадим объект SKПродуктыЗапрос , назначим ему делегат — результаты запроса будут отправлены методам делегата.
Мы вызываем метод start(), который инициализирует асинхронную процедуру: private func requestProducts() {
productRequest?.
cancel()
let productRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
productRequest.delegate = self
productRequest.start()
self.productRequest = productRequest
}
Если операция прошла успешно, будет вызван метод productRequest(didReceive response:), который будет содержать все информация, которая нам нужна : extension Purchases: SKProductsRequestDelegate {
func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
guard !response.products.isEmpty else {
print("Found 0 products")
return
}
for product in response.products {
print("Found product: \(product.productIdentifier)")
}
}
func request(_ request: SKRequest, didFailWithError error: Error) {
print("Failed to load products with error:\n \(error)")
}
}
Если все прошло успешно, то в результате в журнал будут выведены две строки: Found product: barcode_month_subscription
Found product: barcode_year_subscription
При этом, если произойдет ошибка, то SKProduct с этим ID не вернется.
Это может произойти, если товар по каким-то причинам стал недействителен.
Об Адапти
Как видите, покупки на iOS требуют серьезных трудозатрат, поэтому рекомендуем ознакомиться с SDK Adapty для покупок в приложениях на iOS .Это не только упрощает работу по добавлению покупок:
- Встроенная аналитика позволяет быстро понять основные метрики приложения.
- Когортный анализ отвечает на вопрос: как быстро сходится экономика.
- A/B-тесты увеличивают доход приложения.
- Интеграция с внешними системами позволяет отправлять транзакции в службы атрибуции и продуктовой аналитики.
- Рекламные кампании уменьшить отток аудитории.
- SDK с открытым исходным кодом позволяет интегрировать подписки в приложение за несколько часов.
- Серверная проверка и API для работы с другими платформами.
Спасибо Алексею Гончарову х401ом за подготовку статьи.
В следующей статье мы разберемся, как совершать покупки в приложении: открывать/закрывать транзакции, обрабатывать ошибки, проверять чеки и многое другое.
Читай дальше Покупки в приложении iOS: инициализация и обработка покупок Теги: #iOS #ios разработка #ios разработка #ios платежи #адаптация #встроенные покупки #Разработка для iOS #Разработка мобильных приложений #Swift #Монетизация мобильных приложений
-
Нарушение Безопасности Кавасаки
19 Oct, 24 -
Еще Немного О Плохом Тестировании
19 Oct, 24 -
Трогать Ультрабуки, Есть Ли В Них Смысл?
19 Oct, 24 -
Ip Телефония В Офисе
19 Oct, 24 -
Обзор Игры Penumbra: Black Plague Для Linux
19 Oct, 24 -
Кодирующие Кролики Ищут Сокровища
19 Oct, 24 -
Программные Продукты Microsoft Dynamics
19 Oct, 24