Сделал тестовый проект, чтобы освоить монетизацию в 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";
}
}
}