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 void loadGDT(Activity context, String pid, final RewardAdListener rewardAdListener) {
|
RewardVideoAD rewardVideoAD = new RewardVideoAD(context, pid, new RewardVideoADListener() {
|
@Override
|
public void onADLoad() {
|
rewardAdListener.onADLoad();
|
}
|
|
@Override
|
public void onVideoCached() {
|
rewardAdListener.onVideoCached();
|
}
|
|
@Override
|
public void onADShow() {
|
rewardAdListener.onADShow();
|
}
|
|
@Override
|
public void onADExpose() {
|
|
}
|
|
@Override
|
public void onReward(Map<String, Object> 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);
|
}
|
|
}
|