Как очистить проект от монетизации

Цель: Сделать игру полностью оффлайн, без рекламы, без покупок внутри приложения, без внешних сервисов. Игра не должна ломаться, должна запускаться и работать на 100% (в том числе как WebGL-сборка на локальном сервере). После очистки проект становится «чистым» — никакой зависимости от интернета и SDK монетизации.

Перед тем как начать:

  1. Рекомендуется сделать бекап-копию проекта, либо закоммитить все изменения и сменить ветку в репозитории.
  2. Каждое major изменение в проекте (удаление рекламы, изменение важных скриптов) - обязательно перепроверяйте, что игра не сломана. Так будет проще, чем делать отладку что пошло не так после удаления большого количества файлов и кода разом.
  3. Рекомендуется в отдельной ветке репозитория, делать коммиты на каждое ключевое изменение в проекте, после которого все работает как следует. Высока вероятность сломать что-то в процессе, поэтому создавать чекпоинты к которым можно вернуться очень сильно сэкономит вам время.

Удаление рекламы из проекта

К сожалению нет единого способа удалить рекламу, в каждом проекте она реализована по своему. В этой инструкции будут написаны общие рекомендации и подходы как вырезать монетизацию из проекта без проблем и поломок игры.

Наиблее простым способом найти рекламу и убрать ее будет поиграть в игру через Play Mode или в сам билд через Build and Run, и уже после этого понимать что следует вырезать и где.

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

Как найти следы рекламы через Unity Editor:

  1. В окне Project кликни в поисковую строку сверху.
  2. По очереди ищи ключевые слова, например:
  1. Для каждого результата:
    • Открой и удали весь код про рекламу или закомментируй его.
    • Префабы и GameObject - удали компонент рекламы или весь объект.
    • Сцены - открой каждую сцену, в Hierarchy ищи объекты с названиями AdCanvas, AdManager, Banner, RewardedVideo и удали их.

Нужно обязательно убедиться, что отсутствие рекламы не создает софтлок в игровом процессе, т.к. это довольно частый случай - нужно все очень тщательно протестировать после удаления рекламы из проекта. Геймплей должен быть 100% рабочим и без рекламы. Все UI кнопки с наградой за просмотр рекламы также должны быть спрятаны от игрока или полностью вырезаны из игры. Возможны другие UI элементы связанные с показом рекламы, их также нужно вырезать или спрятать полностью от игрока.

Удаление покупок из проекта

Аналогично с рекламой, наиболее простым способом будет удалить SDK для платежей, и по логам понять что необходимо заменить или закомментировать. Это также может указать косвенно на UI элементы которые тоже нужно спрятать в игре.

Ключевые слова для инапов могут быть:

Обязательно после всех действий и вырезания кода от монетизации, следует на 100% убедиться, что в самой игре также отсутствует любой намек на платежи. Игра не должна софтлочиться из-за ожидания инициализации SDK платежей или лагать из-за NullReferenceException. Премиум магазины, кнопки восстановить покупки, цены с реальной валютой - все должно быть убрано из игры или спрятано от игрока полностью.