Как очистить проект от монетизации
Цель: Сделать игру полностью оффлайн, без рекламы, без покупок внутри приложения, без внешних сервисов. Игра не должна ломаться, должна запускаться и работать на 100% (в том числе как WebGL-сборка на локальном сервере). После очистки проект становится «чистым» — никакой зависимости от интернета и SDK монетизации.
Перед тем как начать:
- Рекомендуется сделать бекап-копию проекта, либо закоммитить все изменения и сменить ветку в репозитории.
- Каждое major изменение в проекте (удаление рекламы, изменение важных скриптов) - обязательно перепроверяйте, что игра не сломана. Так будет проще, чем делать отладку что пошло не так после удаления большого количества файлов и кода разом.
- Рекомендуется в отдельной ветке репозитория, делать коммиты на каждое ключевое изменение в проекте, после которого все работает как следует. Высока вероятность сломать что-то в процессе, поэтому создавать чекпоинты к которым можно вернуться очень сильно сэкономит вам время.
Удаление рекламы из проекта
К сожалению нет единого способа удалить рекламу, в каждом проекте она реализована по своему. В этой инструкции будут написаны общие рекомендации и подходы как вырезать монетизацию из проекта без проблем и поломок игры.
Наиблее простым способом найти рекламу и убрать ее будет поиграть в игру через Play Mode или в сам билд через Build and Run, и уже после этого понимать что следует вырезать и где.
Можно изначально удалить SDK рекламы, это поможет по логам определить где происходят вызовы рекламы, чтобы в дальнейшем их заменить или закомментирвовать.
Как найти следы рекламы через Unity Editor:
- В окне Project кликни в поисковую строку сверху.
- По очереди ищи ключевые слова, например:
- Advertisement
- Ads
- AdMob
- AppLovin
- IronSource
- LevelPlay
- ShowAd
- Rewarded
- Interstitial
- Banner
- UnityAds
- GoogleMobileAds
- AdManager
- AdsManager
- Для каждого результата:
- Открой и удали весь код про рекламу или закомментируй его.
- Префабы и GameObject - удали компонент рекламы или весь объект.
- Сцены - открой каждую сцену, в Hierarchy ищи объекты с названиями AdCanvas, AdManager, Banner, RewardedVideo и удали их.
Нужно обязательно убедиться, что отсутствие рекламы не создает софтлок в игровом процессе, т.к. это довольно частый случай - нужно все очень тщательно протестировать после удаления рекламы из проекта. Геймплей должен быть 100% рабочим и без рекламы. Все UI кнопки с наградой за просмотр рекламы также должны быть спрятаны от игрока или полностью вырезаны из игры. Возможны другие UI элементы связанные с показом рекламы, их также нужно вырезать или спрятать полностью от игрока.
Удаление покупок из проекта
Аналогично с рекламой, наиболее простым способом будет удалить SDK для платежей, и по логам понять что необходимо заменить или закомментировать. Это также может указать косвенно на UI элементы которые тоже нужно спрятать в игре.
Ключевые слова для инапов могут быть:
- IAP
- InApp
- Purchase
- UnityPurchasing
- StoreController
- Product
- BuyButton
- ShopManager
Обязательно после всех действий и вырезания кода от монетизации, следует на 100% убедиться, что в самой игре также отсутствует любой намек на платежи. Игра не должна софтлочиться из-за ожидания инициализации SDK платежей или лагать из-за NullReferenceException. Премиум магазины, кнопки восстановить покупки, цены с реальной валютой - все должно быть убрано из игры или спрятано от игрока полностью.