admin
2022-08-09 399ac289f80b7a40aa4210341db6b447cacdcf14
app/src/main/java/com/tejia/lijin/app/util/ad/ExpressAdManager.java
@@ -12,11 +12,10 @@
import com.bytedance.sdk.openadsdk.TTAdManager;
import com.bytedance.sdk.openadsdk.TTAdNative;
import com.bytedance.sdk.openadsdk.TTNativeExpressAd;
import com.qq.e.ads.cfg.VideoOption;
import com.qq.e.ads.nativ.ADSize;
import com.qq.e.ads.nativ.NativeExpressAD;
import com.qq.e.ads.nativ.NativeExpressADView;
import com.qq.e.ads.nativ.express2.AdEventListener;
import com.qq.e.ads.nativ.express2.NativeExpressAD2;
import com.qq.e.ads.nativ.express2.NativeExpressADData2;
import com.qq.e.ads.nativ.express2.VideoOption2;
import com.qq.e.comm.util.AdError;
import com.wpc.library.util.common.DimenUtils;
@@ -60,23 +59,17 @@
     */
    public void loadAd(int widthDP, int heightDP, String pid, int count, final IAdLoadListener adLoadListener) {
        if (sourceType == AdUtil.AD_TYPE.gdt2) {
            loadGDT2(pid, widthDP, heightDP, count, new IGDTAdLoadListener() {
            loadGDT(pid, widthDP, heightDP, count, new IGDTAdLoadListener() {
                @Override
                public void onSuccess(List<NativeExpressADView> adList) {
                }
                @Override
                public void onSuccess2(List<NativeExpressADData2> adList) {
                    List<ExpressAdContainer> adContainerList = new ArrayList<>();
                    if (adList != null)
                        for (NativeExpressADData2 ad : adList) {
                            adContainerList.add(new ExpressAdContainer(ad));
                        for (NativeExpressADView adView : adList) {
                            adContainerList.add(new ExpressAdContainer(adView));
                        }
                    adLoadListener.onSuccess(adContainerList);
                }
            }, mContext);
        } else if (sourceType == AdUtil.AD_TYPE.csj) {
            loadCSJ(pid, widthDP, heightDP, count, new ICSJAdLoadListener() {
                @Override
@@ -110,45 +103,6 @@
    }
    /**
     * 2.0版本广点通原生
     *
     * @param positionId
     * @param widthDP
     * @param heightDP
     * @param count
     * @param adLoadListener
     * @param context
     */
    private void loadGDT2(String positionId, int widthDP, int heightDP, int count, final IGDTAdLoadListener adLoadListener, Context context) {
        Log.i(TAG, String.format("loadGDT2:positionId-%s  widthDP-%s heightDP-%s", positionId, widthDP, heightDP));
        NativeExpressAD2 nativeExpressAD2 = new NativeExpressAD2(context, positionId, new NativeExpressAD2.AdLoadListener() {
            @Override
            public void onLoadSuccess(List<NativeExpressADData2> list) {
                if (adLoadListener != null)
                    adLoadListener.onSuccess2(list);
            }
            @Override
            public void onNoAD(AdError adError) {
                if (adLoadListener != null)
                    adLoadListener.onSuccess2(null);
            }
        });
        nativeExpressAD2.setAdSize(widthDP, heightDP);
        VideoOption2.Builder builder = new VideoOption2.Builder();
        builder.setAutoPlayPolicy(VideoOption2.AutoPlayPolicy.WIFI) // WIFI 环境下可以自动播放视频
                .setAutoPlayMuted(true) // 自动播放时为静音
                .setDetailPageMuted(false)  // 视频详情页播放时不静音
                .setMaxVideoDuration(0) // 设置返回视频广告的最大视频时长(闭区间,可单独设置),单位:秒,默认为 0 代表无限制,合法输入为:5<=maxVideoDuration<=60. 此设置会影响广告填充,请谨慎设置
                .setMinVideoDuration(0); // 设置返回视频广告的最小视频时长(闭区间,可单独设置),单位:秒,默认为 0 代表无限制, 此设置会影响广告填充,请谨慎设置
        nativeExpressAD2.setVideoOption2(builder.build());
        nativeExpressAD2.loadAd(count);
    }
    /**
     * 穿山甲广告
     *
     * @param codeId
@@ -178,6 +132,69 @@
        });
    }
    /**
     * 加载广点通广告
     *
     * @param positionId
     * @param count
     * @param adLoadListener
     * @param context
     */
    private void loadGDT(String positionId, int widthDP, int heightDP, int count, final IGDTAdLoadListener adLoadListener, Context context) {
        NativeExpressAD nativeExpressAD = new NativeExpressAD(context, new ADSize(widthDP, ADSize.AUTO_HEIGHT),
                positionId, new NativeExpressAD.NativeExpressADListener() {
            @Override
            public void onADLoaded(List<NativeExpressADView> list) {
                if (adLoadListener != null)
                    adLoadListener.onSuccess(list);
            }
            @Override
            public void onRenderFail(NativeExpressADView nativeExpressADView) {
            }
            @Override
            public void onRenderSuccess(NativeExpressADView nativeExpressADView) {
            }
            @Override
            public void onADExposure(NativeExpressADView nativeExpressADView) {
            }
            @Override
            public void onADClicked(NativeExpressADView nativeExpressADView) {
            }
            @Override
            public void onADClosed(NativeExpressADView nativeExpressADView) {
            }
            @Override
            public void onADLeftApplication(NativeExpressADView nativeExpressADView) {
            }
            @Override
            public void onNoAD(AdError adError) {
                if (adLoadListener != null)
                    adLoadListener.onSuccess(null);
            }
        }); // 传入Activity
        nativeExpressAD.setVideoOption(new VideoOption.Builder()
                .setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // WIFI 环境下可以自动播放视频
                .setAutoPlayMuted(true) // 自动播放时为静音
                .build()); //
        nativeExpressAD.loadAD(count);
    }
    /**
     * 渲染模板和填充广告
@@ -193,45 +210,16 @@
            fl_ad.setVisibility(View.GONE);
        } else {
            fl_ad.setVisibility(View.VISIBLE);
            if (ad.getGdt2() != null) {
                if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt2().getAdView()) {
            if (ad.getGdt() != null) {
                if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt()) {
                    return;
                }
                fl_ad.removeAllViews();
                ad.getGdt2().setAdEventListener(new AdEventListener() {
                    @Override
                    public void onClick() {
                ad.getGdt().render();
                if (ad.getGdt().getParent() != null) {
                    ((ViewGroup) ad.getGdt().getParent()).removeAllViews();
                    }
                    @Override
                    public void onExposed() {
                    }
                    @Override
                    public void onRenderSuccess() {
                        if (ad.getGdt2().getAdView().getParent() != null) {
                            ((ViewGroup) ad.getGdt2().getAdView().getParent()).removeAllViews();
                        }
                        fl_ad.addView(ad.getGdt2().getAdView());
                    }
                    @Override
                    public void onRenderFail() {
                    }
                    @Override
                    public void onAdClosed() {
                        if (adEventListener != null) {
                            adEventListener.closeAd(ad);
                        }
                    }
                });
                ad.getGdt2().render();
                fl_ad.addView(ad.getGdt());
            } else if (ad.getCsj() != null) {
                if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getCsj().getExpressAdView()) {
                    return;
@@ -253,6 +241,7 @@
                        }
                    }
                    @Override
                    public void onCancel() {
@@ -269,7 +258,6 @@
    }
    /**
     * 渲染广告
     *
@@ -284,43 +272,14 @@
            return;
        }
        if (ad.getGdt2() != null) {
            ad.getGdt2().setAdEventListener(new AdEventListener() {
                @Override
                public void onClick() {
                }
                @Override
                public void onExposed() {
                }
                @Override
                public void onRenderSuccess() {
        if (ad.getGdt() != null) {
            ad.getGdt().render();
                    List<ExpressAdContainer> list = new ArrayList<>();
                    list.add(ad);
                    if (adRenderListener != null)
                        adRenderListener.onRenderSuccess(list);
                }
                @Override
                public void onRenderFail() {
                    List<ExpressAdContainer> list = new ArrayList<>();
                    list.add(ad);
                    if (adRenderListener != null)
                        adRenderListener.onRenderFail(list);
                }
                @Override
                public void onAdClosed() {
                    if (adEventListener != null)
                        adEventListener.closeAd(ad);
                }
            });
            ad.getGdt2().render();
        } else if (ad.getCsj() != null) {
            Log.i(TAG, "广告曝光:csj");
            ad.getCsj().setExpressInteractionListener(new TTNativeExpressAd.ExpressAdInteractionListener() {
                @Override
                public void onAdClicked(View view, int i) {
@@ -365,6 +324,7 @@
                        }
                    }
                    @Override
                    public void onCancel() {
@@ -377,7 +337,6 @@
    }
    /**
     * 为广告绑定关闭事件
     *
@@ -391,34 +350,8 @@
            return;
        }
        if (ad.getGdt2() != null) {
            ad.getGdt2().setAdEventListener(new AdEventListener() {
                @Override
                public void onClick() {
                }
                @Override
                public void onExposed() {
                }
                @Override
                public void onRenderSuccess() {
                }
                @Override
                public void onRenderFail() {
                }
                @Override
                public void onAdClosed() {
                    if (adEventListener != null)
                        adEventListener.closeAd(ad);
                }
            });
        if (ad.getGdt() != null) {
            return;
        } else if (ad.getCsj() != null) {
            ad.getCsj().setExpressInteractionListener(new TTNativeExpressAd.ExpressAdInteractionListener() {
                @Override
@@ -456,16 +389,19 @@
                    }
                }
                @Override
                public void onCancel() {
                }
            });
        }
    }
    /**
@@ -483,16 +419,15 @@
                    fl_ad.setVisibility(View.GONE);
                } else {
                    fl_ad.setVisibility(View.VISIBLE);
                    if (ad.getGdt2() != null) {
                        if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt2().getAdView()) {
                    if (ad.getGdt() != null) {
                        if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt()) {
                            return;
                        }
                        if (ad.getGdt2().getAdView().getParent() != null) {
                            ((ViewGroup) ad.getGdt2().getAdView().getParent()).removeAllViews();
                        if (ad.getGdt().getParent() != null) {
                            ((ViewGroup) ad.getGdt().getParent()).removeAllViews();
                        }
                        fl_ad.removeAllViews();
                        fl_ad.addView(ad.getGdt2().getAdView());
                        fl_ad.addView(ad.getGdt());
                    } else if (ad.getCsj() != null) {
                        if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getCsj().getExpressAdView()) {
                            return;
@@ -519,11 +454,8 @@
    }
    interface IGDTAdLoadListener {
        public void onSuccess(List<NativeExpressADView> adList);
        public void onSuccess2(List<NativeExpressADData2> adList);
    }
    interface ICSJAdLoadListener {