插屏广告和激励视频广告最佳实践 - sunitsdk/SUnitUnityDemo GitHub Wiki

shareitSDK:SHAREitSDK.SHAREitSDK实例

1. 进入游戏后调用一次load

shareitSDK.loadInterstitialAd(string unitId);
shareitSDK.loadRewardedAd(string unitId);   

2. 到达广告展示时机,调用 isReady, 如果返回true则调用show,如果返回false则调用load。

插屏广告代码示例:

if (shareitSDK.isInterstitialAdReady(unitId,"home")){
    shareitSDK.showInterstitialAd(unitId,null);
} else {
    shareitSDK.loadInterstitialAd(unitId);
}

激励视频广告代码示例:

if (shareitSDK.isRewardedAdReady(unitId,"home","portal1")){
    shareitSDK.showRewardedAd(unitId,null);
} else {
    shareitSDK.loadRewardedAd(unitId);
}

3. 如果没有等待 load callbak 的场景,可以不注册广告load的listener

Listener接口说明

AdShowListener

public class AdShowListener {
    // 广告展示失败时将回调
    delegate void onAdShowFailed(string unitId, int errCode, string errMessage);
    // 广告展示回调, adSourceName 表示请求到的广告来自于哪个广告平台
    delegate void onAdImpression(string unitId, string adSourceName);
    // 广告点击时回调, adSourceName 表示请求到的广告来自于哪个广告平台
    delegate void onAdClicked(string unitId, string adSourceName);
    // 激励视频广告在达到激励条件时回调, adSourceName 表示请求到的广告来自于哪个广告平台; 插屏广告无此回调
    delegate void onAdRewarded(string unitId, string adSourceName);
    // 广告关闭时回调, adSourceName 表示请求到的广告来自于哪个广告平台; 激励视频广告可以根据 infoMap 中的 "hasReward" 字段来判断广告关闭时是否已经激励
    delegate void onAdClosed(string unitId, string adSourceName, bool hasRewarded);
}