версия unity ads 4.0.1, все по документации. Rewarded реклама работает как нужно как на юнити так и на устройстве. А с баннером дело другое.
В самом юнити баннер загружается спокойно, но на устройстве не появляется. Залез в логи устройства, а там ошибка
. Что она означает и как исправить?
Тестил не на дев билде. Щас перебилдил и снова проверил и ошибка уже другая
скрипт отвечающий за инициализацию:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Advertisements;
public class AdsInitializer : MonoBehaviour, IUnityAdsInitializationListener
{
[SerializeField] private string _androidGameId;
[SerializeField] private string _iOSGameId;
[SerializeField] private bool _testMode;
private string _gameId;
private void Awake()
{
InitializeAds();
}
public void InitializeAds()
{
_gameId = (Application.platform == RuntimePlatform.IPhonePlayer)
? _iOSGameId
: _androidGameId;
Advertisement.Initialize(_gameId, _testMode);
}
public void OnInitializationComplete()
{
Debug.Log("Ads initialization complete.");
}
public void OnInitializationFailed(UnityAdsInitializationError error, string message)
{
Debug.Log($"Ads initialization failed: {error.ToString()} - {message}");
}
}
скрипт отвечающий за баннер:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Advertisements;
public class AdsBanner : MonoBehaviour
{
//public static AdsReward Inst;
[SerializeField] BannerPosition _bannerPosition;
[SerializeField] private string _androidAdUnitId = "Rewarded_Android";
[SerializeField] private string _iOSAdUnitId = "Rewarded_iOS";
private string _adUnitId;
private void Awake()
{
_adUnitId = (Application.platform == RuntimePlatform.IPhonePlayer)
? _iOSAdUnitId
: _androidAdUnitId;
}
private void Start()
{
Advertisement.Banner.SetPosition(_bannerPosition);
StartCoroutine("LoadBannerAfterTime");
}
private IEnumerator LoadBannerAfterTime()
{
yield return new WaitForSeconds(1f);
LoadBanner();
}
public void LoadBanner()
{
BannerLoadOptions options = new BannerLoadOptions
{
loadCallback = OnBannerLoaded,
errorCallback = OnBannerError
};
Advertisement.Banner.Load(_adUnitId, options);
}
private void OnBannerLoaded()
{
Debug.Log("Banner loaded");
ShowBannerAd();
}
private void OnBannerError(string message)
{
Debug.Log($"Banner Error: {message}");
}
public void ShowBannerAd()
{
BannerOptions options = new BannerOptions
{
clickCallback = OnBannerClicked,
hideCallback = OnBannerHidden,
showCallback = OnBannerShown
};
Advertisement.Banner.Show(_adUnitId, options);
}
private void OnBannerClicked() { }
private void OnBannerShown() { }
private void OnBannerHidden() { }
public void HideBannerAd()
{
Advertisement.Banner.Hide();
}
}