Unity 3d реклама работает только в тестовом режиме
Все настроил и все работает, НО реклама показывается только в тестовом режиме. Галочку в сервисах убрал и в скрипте поменял инициализацию на false(в плей маркет залил и сутки подождал):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Advertisements;
public class RewardedAds : MonoBehaviour, IUnityAdsLoadListener, IUnityAdsShowListener
{
[SerializeField] private Button buttonShowAd;
[SerializeField] private string androidAdID = "Rewarded_Android";
[SerializeField] private string iOSAdID = "Rewarded_iOS";
private string adID;
public int money;
private void Awake()
{
adID = (Application.platform == RuntimePlatform.IPhonePlayer)
? iOSAdID
: androidAdID;
buttonShowAd.interactable = true;
}
private void Start()
{
LoadAd();
}
public void LoadAd()
{
Debug.Log("Loading Ad: " + adID);
Advertisement.Load(adID, this);
}
public void ShowAd()
{
buttonShowAd.interactable = true;
Advertisement.Show(adID, this);
}
public void OnUnityAdsAdLoaded(string adUnitId)
{
Debug.Log("Ad Loaded: " + adUnitId);
if (adUnitId.Equals(adID))
{
buttonShowAd.onClick.AddListener(ShowAd);
buttonShowAd.interactable = true;
}
}
public void OnUnityAdsFailedToLoad(string placementId, UnityAdsLoadError error, string message)
{
Debug.Log($"Error loading Ad Unit {adID}: {error.ToString()} - {message}");
}
public void OnUnityAdsShowFailure(string placementId, UnityAdsShowError error, string message)
{
Debug.Log($"Error showing Ad Unit {adID}: {error.ToString()} - {message}");
}
public void OnUnityAdsShowStart(string placementId)
{
}
public void OnUnityAdsShowClick(string placementId)
{
}
public void OnUnityAdsShowComplete(string adUnitId, UnityAdsShowCompletionState showCompletionState)
{
if (adUnitId.Equals(adID) && showCompletionState.Equals(UnityAdsShowCompletionState.COMPLETED))
{
money = PlayerPrefs.GetInt("money", money);
money += 20;
PlayerPrefs.SetInt("money", money);
Debug.Log("Unity Ads Rewarded Ad Completed");
}
}
private void OnDestroy()
{
buttonShowAd.onClick.RemoveAllListeners();
}
}
// другой скрипт
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Advertisements;
public class AdsInitializer : MonoBehaviour, IUnityAdsInitializationListener
{
[SerializeField] string androidGameID = "...";
[SerializeField] string iOSGameID = "...";
[SerializeField] bool testMode = false;
private string gameID;
void Awake()
{
InitializeAds();
}
public void InitializeAds()
{
gameID = (Application.platform == RuntimePlatform.IPhonePlayer) ? iOSGameID : androidGameID;
Advertisement.Initialize(gameID, testMode, this);
}
public void OnInitializationComplete()
{
Debug.Log("Unity Ads initialization complete.");
}
public void OnInitializationFailed(UnityAdsInitializationError error, string message)
{
Debug.Log($"Unity Ads Initialization Failed: {error.ToString()} - {message}");
}
}