IAP (In App Purshases) -игровые покупки один из наиболее популярных способов монетизации мобильных приложений. Существует 3 типа покупок: расходуемые, не расходуемые и подписки. Первые два типа понятно из названия, что они могут расходоваться (различные монеты, кристаллы или другая игровая валюта) и приобретаться снова, а другие приобретаются однажды и остаются навсегда(такие, как отключение рекламы, уникальный скин или другой контент). Подписки-это предоставление различного контента за оплату на определенный срок с возможностью постоянно продлевать.
Как встроить внутриигровые покупки в Unity
В этом уроке рассмотрим пошаговый процесс как добавить покупки в Unity3D для приложений под Android и iOS. Начиная с версии Unity 5 появилась поддержка внутриигровых покупок без сторонних плагинов. И на данный момент можно легко внедрить их в игру практически без программирования.
Импорт плагина.
Открываем вкладку Services она находится в меню Window>General>Services.

В появившемся окне нажимаем на раздел In-App Purchasing. Далее нажимаем переключатель или жмем по кнопке Enable
Щёлкаем по кнопке импорт, чтобы загрузить файлы плагина в проект.
Для того чтобы покупки отражались в Unity Analitics необходимо вставить API ключ приложения из Google Play. Получить его можно в консоли разработчика гугл во вкладке Монетизация->Настройка монетизации (если вы используете старую версию консоли Инструменты разработки->Службы и API).

Если Unity выдает ошибку: Please enter the key in a valid format, то попробуйте выключить аналитику в Uniyty сервисах и включить заново, затем открыть ее в браузере нажав кнопку Go to dashboard.
Создание покупок.
Далее нужно зайти в каталог покупок Window->Unity IAP->IAP Catalog для создания идентификаторов покупок.

В окне IAP Catalog для создания покупки нажимаем кнопку Add Product и вводим ID и выбираем тип покупки. Это может быть consumable, non consumable или Subscription(расходуемые, не расходуемые и подписка).
ID покупки для AppStore должен иметь уникальный идентификатор и не повторять уже используемые в других ваших приложениях. Поэтому лучше давать названия не no_ads, а my_game_name_no_ads.
Так же не забудьте добавить покупки с такими же идентификаторами в консоли разработчика AppStore и GooglePlay.
Создание и настройка кнопок для покупок.
Перейдем непосредственно к созданию и настройке самих кнопок для инапов. Создадим интерфейс окна с различными покупками на Canvas-е.
На каждую кнопку добавляем компонент IAP Button.

В поле Product ID: выбираем id покупки из тех, что до этого создали. Если это не расходуемая покупка, то снимаем флажок с Consume Purchase. Button Type имеет два значения. Оставляем Purchase, а Restore используется для восстановления покупок на iOS. В поле On Purchase Complete нажимаем на +, чтобы добавить действие выполняемое после успешной процедуры покупки.

Кнопка Restore для восстановления покупок на iOS должна присутствовать в приложении. Иначе вы не пройдете модерацию в AppStore.
Далее смотрим на скриншот ниже и выполняем следующие действия:
- 1. Сюда перетягиваем GameObject на котором находится ваш скрипт. В нём нужно прописать действия осуществляемые при покупке.
- 2. В этом списке выбираем нужную функцию из вашего скрипта.
- 3. Здесь вы можете указать объект с компонентом Text в котором будет отображаться цена за покупку из консоли GooglePlay и AppStore в валюте той страны, где находится пользователь.

Теперь можете запустить игру в редакторе и протестировать покупку. При нажатии на кнопку выйдет вот такое окно.

Смотреть подробный видео урок по интеграции Покупок в Unity3D:
На этом всё. Если у вас есть какие-то вопросы или вы заметили не точность, то пишите в комментарии. Всем больших внутриигровых продаж. Рекомендую также почитать статью про способы монетизации мобильной игры. Спасибо за внимание!:)