Покупки В Приложении Для Ios, Часть 1: Настройка И Добавление В Проект

Всем привет, меня зовут Виталий, я основатель Adapty. Подписки — один из способов монетизации приложения.

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

В отличие от обычных покупок, где Apple берет комиссию в размере 30%, при подписке эта комиссия снижается до 15%, если пользователь подписан на 1 год и более.

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

Мы выпускаем серию статей, освещающих все вопросы добавления встроенных покупок в iOS:

  1. Внутриигровые покупки iOS, часть 1: настройка и добавление в проект. - Вы здесь.

  2. Покупки в приложении iOS, часть 2: Инициализация и обработка покупок.

  3. Покупки в приложении iOS, часть 3: Проверка покупки на стороне сервера.

  4. Покупки в приложении iOS, часть 4: Локальное тестирование покупок в XCode.
  5. Покупки в приложении iOS, часть 5: Обработка ошибок SKErrors.
В этой части мы узнаем:
  • создавать покупки в App Store Connect;
  • настроить подписки – указать продолжительность, стоимость, пробные периоды;
  • получить список покупок в приложении


Покупки в приложении для iOS, часть 1: настройка и добавление в проект



Создание покупок

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

Для каждого из них мы сделаем пробный период в 7 дней.

На странице нашего приложения в App Store Connect откройте вкладку «Встроенные покупки» → «Управление».

На этой вкладке отображается список созданных нами покупок.

Для того, чтобы создать новую покупку, вам необходимо нажать на кнопку (+), которая расположена рядом с заголовком «Встроенные покупки».



Покупки в приложении для iOS, часть 1: настройка и добавление в проект

Интерфейс для создания покупок Далее мы попадаем в диалог создания покупки.

Наш выбор — автоматически возобновляемая подписка.



Покупки в приложении для iOS, часть 1: настройка и добавление в проект

Выберите пункт 3 Следующим шагом нам будет предложено создать группу подписки.

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

Кроме того, все вводные предложения, такие как пробная версия, распространяются сразу на всю группу.

Группы необходимы для разделения бизнес-логики внутри приложения.

Давайте назовем нашу группу Премиум-доступ.

При добавлении следующей подписки интерфейс предложит добавить ее в существующую группу.

Позже вы сможете управлять группами в меню «Встроенные покупки» → «Группы подписки».



Покупки в приложении для iOS, часть 1: настройка и добавление в проект

Создание группы подписки Далее настройте имя подписки

  • Справочное имя — как подписка будет отображаться в App Store Connect, а также в разделе «Продажи» и в отчетах.

  • Product ID — уникальный идентификатор товара, который используется в коде приложения.

Рекомендую выбирать для Product ID читаемое имя, из которого можно почерпнуть максимум информации.

Хорошая практика — указывать продолжительность подписки, чтобы потом меньше путаться в аналитике.



Покупки в приложении для iOS, часть 1: настройка и добавление в проект

Добавим второй товар таким же образом, в результате наш интерфейс вкладки «Внутренние покупки → Управление» будет выглядеть так:

Покупки в приложении для iOS, часть 1: настройка и добавление в проект

Две подписки в приложении

Конфигурация подписки

Покупки были добавлены, но они еще не готовы к использованию: для статуса выше установлено значение «Отсутствуют метаданные».

Это значит, что мы еще не добавили информацию о цене и сроке подписки.

Мы исправим это сейчас.



Продолжительность и цены

Нажмите на продукт и настройте его.



Покупки в приложении для iOS, часть 1: настройка и добавление в проект

Здесь нам нужно выбрать период (Subscription Duration).

В нашем случае выберите 1 месяц или 1 год. Затем переходим в меню настройки цен.

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

App Store Connect автоматически конвертирует цены в другие валюты, но не всегда понятно, как это происходит. Скорее всего, для ваших целевых рынков вы захотите изменить цену вручную.



Покупки в приложении для iOS, часть 1: настройка и добавление в проект



Бесплатный пробный период

Один из популярных способов повышения конверсии подписки — бесплатный пробный период: пользователь активирует его и бесплатно использует приложение.

Если он не отменит подписку, то после окончания срока с него списываются деньги.

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

Чтобы перейти в нужное нам меню, нажмите на кнопку (+) рядом с заголовком и из выпадающего списка выберите «Создать вводное предложение»:

Покупки в приложении для iOS, часть 1: настройка и добавление в проект

Выбор списка стран

Покупки в приложении для iOS, часть 1: настройка и добавление в проект

Выберите продолжительность предложения.

Вы можете установить «Без даты окончания», если не хотите ограничивать себя.



Покупки в приложении для iOS, часть 1: настройка и добавление в проект

Последний этап – выбор типа предложения.

Как вы можете видеть на следующем скриншоте, существует три типа:

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

  • Плата вперед – предоплата за использование приложения: пользователь сразу оплачивает определенную стоимость и получает возможность использовать приложение определенное время, а затем еще и становится постоянным подписчиком.

  • Бесплатная – бесплатный пробный период, по истечении которого пользователь может стать подписчиком.

Нас интересует третий вариант, и мы устанавливаем Продолжительность 1 неделю.



Покупки в приложении для iOS, часть 1: настройка и добавление в проект

Сохраните настройки.



Получение списка 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 #Монетизация мобильных приложений

Вместе с данным постом часто просматривают: