package com.weikou.beibeivideo.util.ad;
|
|
|
import android.app.Activity;
|
import android.util.Log;
|
|
import com.bytedance.sdk.openadsdk.AdSlot;
|
import com.bytedance.sdk.openadsdk.TTAdConstant;
|
import com.bytedance.sdk.openadsdk.TTAdNative;
|
import com.bytedance.sdk.openadsdk.TTAdSdk;
|
import com.bytedance.sdk.openadsdk.TTFullScreenVideoAd;
|
import com.huawei.hms.ads.AdListener;
|
import com.huawei.hms.ads.AdParam;
|
import com.huawei.hms.ads.InterstitialAd;
|
import com.qq.e.ads.cfg.VideoOption;
|
import com.qq.e.ads.interstitial2.UnifiedInterstitialAD;
|
import com.qq.e.ads.interstitial2.UnifiedInterstitialADListener;
|
import com.qq.e.comm.util.AdError;
|
import com.vivo.mobilead.unified.base.AdParams;
|
import com.vivo.mobilead.unified.base.VivoAdError;
|
import com.vivo.mobilead.unified.base.callback.MediaListener;
|
import com.vivo.mobilead.unified.interstitial.UnifiedVivoInterstitialAd;
|
import com.vivo.mobilead.unified.interstitial.UnifiedVivoInterstitialAdListener;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
import java.util.Objects;
|
|
public class InterstitialAdUtil {
|
|
|
private static final String TAG = "InterstitialAdUtil";
|
|
public static void showAd(Activity context, AdUtil.AD_TYPE adType, String pid) {
|
if (adType == null) {
|
return;
|
}
|
|
if (adType == AdUtil.AD_TYPE.csj) {
|
loadCSJ(context, pid);
|
} else if (adType == AdUtil.AD_TYPE.gdt) {
|
showGDT(context, pid);
|
}else if (adType == AdUtil.AD_TYPE.hw) {
|
loadHW(context, pid);
|
}else if (adType == AdUtil.AD_TYPE.vivo) {
|
loadVIVO(context, pid);
|
}
|
}
|
|
private static void loadCSJ(Activity context, String codeId) {
|
TTAdNative mTTAdNative = TTAdSdk.getAdManager().createAdNative(context);
|
AdSlot adSlot = new AdSlot.Builder()
|
.setCodeId(codeId)
|
//模板广告需要设置期望个性化模板广告的大小,单位dp,激励视频场景,只要设置的值大于0即可
|
.setExpressViewAcceptedSize(300, 300)
|
.setSupportDeepLink(true)
|
.setOrientation(TTAdConstant.VERTICAL)//必填参数,期望视频的播放方向:TTAdConstant.HORIZONTAL 或 TTAdConstant.VERTICAL
|
.build();
|
|
mTTAdNative.loadFullScreenVideoAd(adSlot, new TTAdNative.FullScreenVideoAdListener() {
|
//请求广告失败
|
@Override
|
public void onError(int code, String message) {
|
Log.i(TAG,"广告错误");
|
}
|
|
//广告物料加载完成的回调
|
@Override
|
public void onFullScreenVideoAdLoad(TTFullScreenVideoAd ad) {
|
|
}
|
|
//广告视频/图片加载完成的回调,接入方可以在这个回调后展示广告
|
@Override
|
public void onFullScreenVideoCached() {
|
|
}
|
|
@Override
|
public void onFullScreenVideoCached(TTFullScreenVideoAd ttFullScreenVideoAd) {
|
ttFullScreenVideoAd.showFullScreenVideoAd(context);
|
}
|
});
|
|
|
}
|
|
private static void loadHW(Activity context, String adId) {
|
final InterstitialAd interstitialAd = new InterstitialAd(context);
|
interstitialAd.setAdId(adId);
|
AdParam adParam = new AdParam.Builder().build();
|
interstitialAd.setAdListener(new AdListener(){
|
@Override
|
public void onAdLoaded() {
|
super.onAdLoaded();
|
interstitialAd.show(context);
|
}
|
|
@Override
|
public void onAdFailed(int i) {
|
super.onAdFailed(i);
|
}
|
});
|
interstitialAd.loadAd(adParam);
|
}
|
|
private static Map<String, UnifiedVivoInterstitialAd> vivoInterstitialAdMap=new HashMap<>();
|
|
private static void loadVIVO(Activity context, String adId) {
|
AdParams adParam = new AdParams.Builder(adId).build();
|
UnifiedVivoInterstitialAd vivoInterstitialAd = new UnifiedVivoInterstitialAd(context, adParam, new UnifiedVivoInterstitialAdListener() {
|
@Override
|
public void onAdReady() {
|
Log.i(TAG,"onAdReady");
|
if(vivoInterstitialAdMap.get(adId)!=null) {
|
Objects.requireNonNull(vivoInterstitialAdMap.get(adId)).showAd();
|
}
|
}
|
|
@Override
|
public void onAdFailed(VivoAdError vivoAdError) {
|
Log.i(TAG,"VivoAdError:"+vivoAdError.getMsg());
|
}
|
|
@Override
|
public void onAdClick() {
|
|
}
|
|
@Override
|
public void onAdShow() {
|
|
}
|
|
@Override
|
public void onAdClose() {
|
vivoInterstitialAdMap.remove(adId);
|
}
|
});
|
vivoInterstitialAdMap.put(adId, vivoInterstitialAd);
|
vivoInterstitialAd.setMediaListener(new MediaListener() {
|
@Override
|
public void onVideoStart() {
|
|
}
|
|
@Override
|
public void onVideoPause() {
|
|
}
|
|
@Override
|
public void onVideoPlay() {
|
|
}
|
|
@Override
|
public void onVideoError(VivoAdError vivoAdError) {
|
Log.i(TAG,"VivoAdError");
|
}
|
|
@Override
|
public void onVideoCompletion() {
|
Log.i(TAG,"onVideoCompletion");
|
}
|
|
@Override
|
public void onVideoCached() {
|
Log.i(TAG,"onVideoCached");
|
}
|
});
|
vivoInterstitialAd.loadVideoAd();
|
}
|
|
|
private static UnifiedInterstitialAD iad = null;
|
|
private static void showGDT(Activity context, String pid) {
|
|
VideoOption.Builder builder = new VideoOption.Builder();
|
VideoOption option = builder.build();
|
iad = new UnifiedInterstitialAD(context, pid, new UnifiedInterstitialADListener() {
|
|
@Override
|
public void onADReceive() {
|
if (iad != null && iad.isValid()) {
|
iad.showAsPopupWindow(context);
|
}
|
}
|
|
@Override
|
public void onVideoCached() {
|
|
}
|
|
@Override
|
public void onNoAD(AdError adError) {
|
|
}
|
|
@Override
|
public void onADOpened() {
|
|
}
|
|
@Override
|
public void onADExposure() {
|
|
}
|
|
@Override
|
public void onADClicked() {
|
|
}
|
|
@Override
|
public void onADLeftApplication() {
|
|
}
|
|
@Override
|
public void onADClosed() {
|
|
}
|
|
@Override
|
public void onRenderSuccess() {
|
|
}
|
|
@Override
|
public void onRenderFail() {
|
|
}
|
});
|
|
iad.setVideoOption(option);
|
iad.loadAD();
|
}
|
|
}
|