Видео с вознаграждением от AdMob в Unity - загрузка идет так медленно - PullRequest
0 голосов
/ 26 августа 2018

Раньше я использовал Unity Ads для показа промежуточной и вознагражденной рекламы в моей игре, созданной с помощью Unity, но теперь я переключаюсь на Google Ads (AdMob).

Я читаю документацию с здесь и затем с здесь и все вроде бы работает, но довольно медленно.

У меня есть 3 сцены:

  • Главное меню
  • Игра
  • Магазин

Мне нужно показывать вознагражденную рекламу в сценах игр и магазинов. В игровой сцене у пользователя есть возможность смотреть рекламу, чтобы продолжить там, где он умирает. У него есть только 5 секунд , чтобы сделать это. Если он не смотрит рекламу, у него есть возможность посмотреть другую рекламу за +25 монет, перезапустить игру или перейти в главное меню. В главном меню у пользователя есть возможность пойти в магазин, чтобы купить еще персонажей, и здесь у него также есть кнопка +25 монет, если он смотрит вознагражденную рекламу. Итак, есть 3 места для вознагражденного объявления.

В скрипте главного меню в методе Start() есть:

MobileAds.Initialize(appId);

Проблема в том, что когда пользователь нажимает кнопку «Сохранить» в сцене главного меню, в методе Start(), который я вызываю

// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the rewarded video ad with the request.
rewardBasedVideo.LoadAd(request, adUnitId);

и пользователь имеет возможность немедленно нажать на кнопку «Просмотр рекламы», которая делает это:

if (rewardBasedVideo.IsLoaded()) {
  rewardBasedVideo.Show();
}

и возникла проблема ... Награда за рекламу все еще не загружена, она будет загружена через 1,5 с - 2 с после вызова rewardBasedVideo.LoadAd(request, adUnitId); Таким образом, пользователь должен нажимать на нее несколько раз, пока не появится объявление.

Я проверил много других игр, в которых используется AdMob, и в каждой игре сразу показывается реклама. Как? Есть ли способ предварительно загрузить вознагражденное объявление?

Это также плохой UX, когда появляется умерший модал, и у пользователя есть 5 секунд, чтобы смотреть награжденное объявление, пока он не «полностью мертв», но объявление становится доступным через ~ 3 секунды.

Также в магазине, после просмотра рекламы, у пользователя есть возможность просмотреть его снова, поэтому в OnAdClosed я вставил ту же логику для загрузки нового объявления, но она также медленная, и через несколько секунд объявление фактически загружается, и я проверял другие игры - у них такой проблемы нет.

У вас есть какой-нибудь совет?

1 Ответ

0 голосов
/ 26 августа 2018

Вам нужно позвонить

rewardBasedVideo.LoadAd(request, adUnitId);

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

У меня обычно есть пустой игровой объект со скриптом AdManager, который загружает рекламу. Он имеет статическую ссылку на себя (шаблон синглтона), поэтому я могу легко вызывать его из других скриптов.

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

Относительно отображения нового после окончания предыдущего. Я не вижу жизнеспособного варианта, кроме как физически ждать, пока он не загрузится. (Имейте в виду, что объявление может быть довольно большим в данных)

...