💡Tips
- 🚀 采用预加载机制提升用户体验
- 🔧 推荐使用标准化回调处理流程
public void InitializeRewardedAd()
{
McSdkCallbacks.Rewarded.OnAdLoadedEvent += OnRewardedAdLoadedEvent;
McSdkCallbacks.Rewarded.OnAdLoadFailedEvent += OnRewardedAdLoadFailedEvent;
McSdkCallbacks.Rewarded.OnAdDisplayFailedEvent += OnRewardedAdDisplayFailedEvent;
McSdkCallbacks.Rewarded.OnAdDisplayedEvent += OnRewardedAdDisplayedEvent;
McSdkCallbacks.Rewarded.OnAdClickedEvent += OnRewardedAdClickedEvent;
McSdkCallbacks.Rewarded.OnAdHiddenEvent += OnRewardedAdHiddenEvent;
McSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent;
McSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnRewardedAdRevenuePaidEvent;
McSdkCallbacks.Rewarded.OnAdLoadFinishedEvent += OnRewardedAdLoadFinishedEvent;
LoadRewardedAd();
}
private void LoadRewardedAd()
{
McSdk.LoadRewardedAd("your mediation unit id");
}
private void OnRewardedAdLoadedEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// 加载成功回调
// 重置重试加载次数
retryAttempt = 0;
}
private void OnRewardedAdLoadFailedEvent(string adUnitId, McSdkBase.ErrorInfo errorInfo)
{
// 加载失败回调
// 我们建议您按照指数递增的方式延长重试间隔,直到达到最大延迟时间(本例为 8 秒)或最大重试次数(本例为 3 次)
if (retryAttempt >= 3) return;
retryAttempt++;
double retryDelay = Math.Pow(2, Math.Min(3, retryAttempt));
Invoke("LoadRewardedAd", (float) retryDelay);
}
private void OnRewardedAdDisplayFailedEvent(string adUnitId, McSdkBase.ErrorInfo errorInfo, McSdkBase.AdInfo adInfo)
{
// 展示失败回调
LoadRewardedAd();
}
private void OnRewardedAdDisplayedEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// 展示成功回调
LoadRewardedAd();
}
private void OnRewardedAdClickedEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// 点击回调
}
private void OnRewardedAdHiddenEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// 关闭回调
LoadRewardedAd();
}
private void OnRewardedAdReceivedRewardEvent(string adUnitId, McSdk.Reward reward, McSdkBase.AdInfo adInfo)
{
// 奖励回调
}
private void OnRewardedAdRevenuePaidEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// 收益回调
}
if (McSdk.IsRewardedAdReady("your mediation unit id")) {
McSdk.ShowRewardedAd("your mediation unit id");
} else {
LoadRewardedAd();
}
McSdk.SetRewardedAdExtraParameter("your mediation unit id", "rv_test_extra_key", "rv_test_extra_value");
#if UNITY_ANDROID
McSdk.SetRewardedAdLocalExtraParameter("your mediation unit id", "rv_test_local_extra_key", new AndroidJavaObject("java.lang.String", "rv_test_local_extra_value"));
#elif UNITY_IOS
McSdk.SetRewardedAdLocalExtraParameter("your mediation unit id", "rv_test_local_extra_key", "rv_test_local_extra_value");
#endif
McSdk.LoadRewardedAd("your mediation unit id");