@graf45231

Не могу разобраться с Unity Monetization 3.0, как запустить рекламу на смартфоне?

Сделал тестовый проект, чтобы освоить монетизацию в Unity. В редакторе всё хорошо, показывается тестовая картинка и бонусы начисляются, но на телефоне не запускается реклама, а в эмуляторе так вообще вылетает при нажатии на кнопку рекламы. При нажатии на кнопку вызывается метод ShowAd() и внутри уже идёт проверка готова ли реклама, насколько я знаю в тестовом режиме она всегда готова и поэтому я не понимаю в чём проблема. Не обращайте внимания на изменения текста в поле, просто пытался отладить код, буду благодарен если ещё подскажете как отладить код на android.

using UnityEngine;
using UnityEngine.Monetization;
using UnityEngine.UI;

public class UnityAdsScript : MonoBehaviour
{
    public Player player;
    public string placementId = "rewardedVideo";
    public Text androidConsole;

#if UNITY_IOS
   private string gameId = "2997382";
#elif UNITY_ANDROID
    private string gameId = "2997383";
#endif

    void Start()
    {
        if (Monetization.isSupported)
        {
            Monetization.Initialize(gameId, true);
        }
    }

    void Update()
    {

    }

    public void ShowAd()
    {
        if (Monetization.IsReady(placementId)) {
            androidConsole.text = "Start1";
            ShowAdCallbacks options = new ShowAdCallbacks();
            androidConsole.text = "Start2";
            options.finishCallback = HandleShowResult;
            androidConsole.text = "Start3";
            ShowAdPlacementContent ad = Monetization.GetPlacementContent(placementId) as ShowAdPlacementContent;
            androidConsole.text = "Start4";
            ad.Show(options);
            androidConsole.text = "Start5";
        }
    }

    void HandleShowResult(ShowResult result)
    {
        if (result == ShowResult.Finished)
        {
            player.Reward();
            androidConsole.text = "Finish";
        }
        else if (result == ShowResult.Skipped)
        {
            androidConsole.text = "The player skipped the video - DO NOT REWARD!";
        }
        else if (result == ShowResult.Failed)
        {
            androidConsole.text = "Video failed to show";
        }
    }
}
  • Вопрос задан
  • 931 просмотр
Пригласить эксперта
Ответы на вопрос 1
@MishkaVNorky
1. на компе стоит заглушка, библиотека не работает как на устройстве
2. вы добавили "rewardedVideo" через панель управления? https://unityads.unity3d.com/help/monetization/pla...
с виду в коде все правильно, так же надо учитывать что на телефоне должен быть интернет и реклама (например видео награда) показывается не сразу, а сначала загрузится и только потом (в том числе даже если она тестовая)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы