package com.demo.library_ad; import android.app.Activity; import android.view.View; import android.view.ViewGroup; import com.bytedance.sdk.openadsdk.AdSlot; import com.bytedance.sdk.openadsdk.TTAdConstant; import com.bytedance.sdk.openadsdk.TTAdLoadType; import com.bytedance.sdk.openadsdk.TTAdManager; import com.bytedance.sdk.openadsdk.TTAdNative; import com.bytedance.sdk.openadsdk.TTRewardVideoAd; import com.bytedance.sdk.openadsdk.TTSplashAd; import com.demo.lib.common.util.common.DimenUtils; import com.qq.e.ads.rewardvideo.RewardVideoAD; import com.qq.e.ads.rewardvideo.RewardVideoADListener; import com.qq.e.ads.splash.SplashAD; import com.qq.e.ads.splash.SplashADListener; import com.qq.e.comm.util.AdError; import java.util.Map; public class RewardAdUtil { /** * 加载开屏广告 * * @param adType * @param pid * @param context * @param rewardAdListener */ public static void loadAD(AdUtil.AD_TYPE adType, String pid, Activity context, final RewardAdListener rewardAdListener) { if (adType == null) { rewardAdListener.onError("广告类型为空"); return; } if (AdUtil.AD_TYPE.csj == adType) { loadCSJ(context, pid, rewardAdListener); } else if (AdUtil.AD_TYPE.gdt == adType) { loadGDT(context, pid, rewardAdListener); } else { rewardAdListener.onError("广告类型未知"); } } private static RewardVideoAD rewardVideoAD =null; ; private static void loadGDT(Activity context, String pid, final RewardAdListener rewardAdListener) { rewardVideoAD = new RewardVideoAD(context, pid, new RewardVideoADListener() { @Override public void onADLoad() { rewardAdListener.onADLoad(); } @Override public void onVideoCached() { rewardAdListener.onVideoCached(); rewardVideoAD.showAD(); } @Override public void onADShow() { rewardAdListener.onADShow(); } @Override public void onADExpose() { } @Override public void onReward(Map map) { rewardAdListener.onReward(); } @Override public void onADClick() { } @Override public void onVideoComplete() { } @Override public void onADClose() { rewardAdListener.onAdClose(); } @Override public void onError(AdError adError) { rewardAdListener.onError(adError.getErrorMsg()); } }); rewardVideoAD.loadAD(); } /** * 加载穿山甲广告 * * @param context * @param vg_ad * @param splashAdListener */ /** * @param context * @param code 代码位 * @param rewardAdListener */ private static void loadCSJ(Activity context, String code, final RewardAdListener rewardAdListener) { TTAdManager ttAdManager = null; try { ttAdManager = TTAdManagerHolder.get(); } catch (Exception e) { e.printStackTrace(); } if (ttAdManager == null) { if (rewardAdListener != null) rewardAdListener.onError("SDK未初始化"); return; } AdSlot adSlot = new AdSlot.Builder() .setCodeId(code) //模板广告需要设置期望个性化模板广告的大小,单位dp,激励视频场景,只要设置的值大于0即可 .setExpressViewAcceptedSize(500, 500)//附加参数 .setOrientation(TTAdConstant.VERTICAL) //必填参数,期望视频的播放方向:TTAdConstant.HORIZONTAL 或 TTAdConstant.VERTICAL .setAdLoadType(TTAdLoadType.LOAD)//推荐使用,用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,方便后续为开发者优化相关策略 .build(); TTAdNative mTTAdNative = ttAdManager.createAdNative(context.getApplicationContext()); mTTAdNative.loadRewardVideoAd(adSlot, new TTAdNative.RewardVideoAdListener() { @Override public void onError(int i, String s) { rewardAdListener.onError(s); } @Override public void onRewardVideoAdLoad(TTRewardVideoAd ttRewardVideoAd) { rewardAdListener.onADLoad(); } @Override public void onRewardVideoCached() { rewardAdListener.onVideoCached(); } @Override public void onRewardVideoCached(TTRewardVideoAd ttRewardVideoAd) { rewardAdListener.onVideoCached(); ttRewardVideoAd.setRewardAdInteractionListener(new TTRewardVideoAd.RewardAdInteractionListener() { @Override public void onAdShow() { rewardAdListener.onADShow(); } @Override public void onAdVideoBarClick() { } @Override public void onAdClose() { rewardAdListener.onAdClose(); } @Override public void onVideoComplete() { } @Override public void onVideoError() { } @Override public void onRewardVerify(boolean b, int i, String s, int i1, String s1) { //奖励是否有效 if (b) { rewardAdListener.onReward(); } else { rewardAdListener.onError("获取奖励失败:" + s1); } } @Override public void onSkippedVideo() { } }); ttRewardVideoAd.showRewardVideoAd(context); } }); } public interface RewardAdListener { public void onADLoad(); public void onVideoCached(); public void onADShow(); public void onAdClose(); public void onReward(); public void onError(String msg); } }