From cefe2a41db4a275fb1e940a902cb156f1ed68d80 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 12 八月 2020 16:28:46 +0800 Subject: [PATCH] '视频详情全屏视频广告' --- BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java | 172 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 154 insertions(+), 18 deletions(-) diff --git a/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java b/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java index 7cd2ef2..b8bfa87 100644 --- a/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java +++ b/BuWanVideo/src/com/weikou/beibeivideo/util/ad/ExpressAdManager.java @@ -1,15 +1,23 @@ package com.weikou.beibeivideo.util.ad; +import android.app.Activity; import android.content.Context; +import android.view.View; +import android.widget.FrameLayout; import com.bytedance.sdk.openadsdk.AdSlot; +import com.bytedance.sdk.openadsdk.TTAdDislike; import com.bytedance.sdk.openadsdk.TTAdManager; import com.bytedance.sdk.openadsdk.TTAdNative; -import com.bytedance.sdk.openadsdk.TTFeedAd; +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.weikou.beibeivideo.entity.ad.ExpressAdContainer; import com.weikou.beibeivideo.util.BeibeiConstant; @@ -37,7 +45,7 @@ if (sourceType == SOURCE_CSJ) { TTAdManager ttAdManager = TTAdManagerHolder.get(); mTTAdNative = ttAdManager.createAdNative(context); - TTAdManagerHolder.get().requestPermissionIfNecessary(context); +// TTAdManagerHolder.get().requestPermissionIfNecessary(context); } } @@ -54,23 +62,24 @@ */ public void loadAd(int widthDP, int heightDP, String pid, int count, final IAdLoadListener adLoadListener) { if (sourceType == SOURCE_GDT) { - loadGDT(pid, count, new IGDTAdLoadListener() { + loadGDT(pid, widthDP, heightDP, count, new IGDTAdLoadListener() { @Override public void onSuccess(List<NativeExpressADView> adList) { List<ExpressAdContainer> adContainerList = new ArrayList<>(); - for (NativeExpressADView adView : adList) { - adContainerList.add(new ExpressAdContainer(adView)); - } + if (adList != null) + for (NativeExpressADView adView : adList) { + adContainerList.add(new ExpressAdContainer(adView)); + } adLoadListener.onSuccess(adContainerList); } }, mContext); } else if (sourceType == SOURCE_CSJ) { loadCSJ(pid, widthDP, heightDP, count, new ICSJAdLoadListener() { @Override - public void onSuccess(List<TTFeedAd> adList) { + public void onSuccess(List<TTNativeExpressAd> adList) { List<ExpressAdContainer> adContainerList = new ArrayList<>(); if (adList != null) { - for (TTFeedAd adView : adList) { + for (TTNativeExpressAd adView : adList) { adContainerList.add(new ExpressAdContainer(adView)); } } @@ -83,13 +92,14 @@ /** * 鍔犺浇鎺ㄨ崘澶у浘骞垮憡 + * * @param adLoadListener */ public void loadRecommendLargeAd(final IAdLoadListener adLoadListener) { //鍔犺浇澶у浘 String pid = null; if (sourceType == SOURCE_CSJ) { - pid = "945375047"; + pid = "945386135"; } else if (sourceType == SOURCE_GDT) { pid = BeibeiConstant.GDT_RECOMMAND_NATIVE; } @@ -97,12 +107,13 @@ int deviceWidth = DimenUtils.getScreenWidth(mContext); deviceWidth = DimenUtils.px2dip(mContext, deviceWidth); int width = deviceWidth - 20; - int height = (int) (width * 0.625); + int height = (int) (width * 0.8); loadAd(width, height, pid, 2, adLoadListener); } /** * 鍔犺浇鎺ㄨ崘灏忓浘骞垮憡 + * * @param adLoadListener */ public void loadRecommendSmallAd(final IAdLoadListener adLoadListener) { @@ -117,8 +128,52 @@ int deviceWidth = DimenUtils.getScreenWidth(mContext); deviceWidth = DimenUtils.px2dip(mContext, deviceWidth); int width = (deviceWidth - 30) / 2; - int height = (int) (width * 0.625); - loadAd(640, 320, pid, 1, adLoadListener); + int height = (int) (width * 0.85); + loadAd(width, height, pid, 1, adLoadListener); + } + + + /** + * 鍔犺浇鍒嗙被灏忓浘 + * + * @param adLoadListener + */ + public void loadRecommendCategorySmallAd(final IAdLoadListener adLoadListener) { + //鍔犺浇澶у浘 + String pid = null; + if (sourceType == SOURCE_CSJ) { + pid = "945375047"; + } else if (sourceType == SOURCE_GDT) { + pid = BeibeiConstant.GDT_RECOMMEND_CATEGORY_MIN_NATIVE; + } + //鑾峰彇灞忓箷鐨勫 + int deviceWidth = DimenUtils.getScreenWidth(mContext); + deviceWidth = DimenUtils.px2dip(mContext, deviceWidth); + int width = (deviceWidth - 30) / 2; + int height = (int) (width * 0.85); + loadAd(width, height, pid, 1, adLoadListener); + } + + + /** + * 鎼滅储缁撴灉椤靛皬鍥� + * + * @param adLoadListener + */ + public void loadSearchResultSmallAd(int count, final IAdLoadListener adLoadListener) { + //鍔犺浇澶у浘 + String pid = null; + if (sourceType == SOURCE_CSJ) { + pid = "945379581"; + } else if (sourceType == SOURCE_GDT) { + pid = BeibeiConstant.GDT_SEARCH_RESULT_MIN_NATIVE; + } + //鑾峰彇灞忓箷鐨勫 + int deviceWidth = DimenUtils.getScreenWidth(mContext); + deviceWidth = DimenUtils.px2dip(mContext, deviceWidth); + int width = (deviceWidth - 20); + int height = 75; + loadAd(width, height, pid, count, adLoadListener); } /** @@ -129,9 +184,10 @@ * @param adLoadListener * @param context */ - private void loadGDT(String positionId, int count, final IGDTAdLoadListener adLoadListener, Context context) { + private void loadGDT(String positionId, int widthDP, int heightDP, int count, final IGDTAdLoadListener adLoadListener, Context context) { NativeExpressAD nativeExpressAD = new NativeExpressAD(context, new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT), positionId, new NativeExpressAD.NativeExpressADListener() { + @Override public void onADLoaded(List<NativeExpressADView> list) { if (adLoadListener != null) @@ -150,6 +206,7 @@ @Override public void onADExposure(NativeExpressADView nativeExpressADView) { + } @Override @@ -183,11 +240,11 @@ adLoadListener.onSuccess(null); } }); // 浼犲叆Activity - // 娉ㄦ剰锛氬鏋滄偍鍦ㄨ仈鐩熷钩鍙颁笂鏂板缓鍘熺敓妯℃澘骞垮憡浣嶆椂锛岄�夋嫨浜嗘敮鎸佽棰戯紝閭d箞鍙互杩涜涓�у寲璁剧疆锛堝彲閫夛級 nativeExpressAD.setVideoOption(new VideoOption.Builder() .setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // WIFI 鐜涓嬪彲浠ヨ嚜鍔ㄦ挱鏀捐棰� .setAutoPlayMuted(true) // 鑷姩鎾斁鏃朵负闈欓煶 .build()); // + nativeExpressAD.setVideoPlayPolicy(VideoOption.VideoPlayPolicy.AUTO); nativeExpressAD.loadAD(count); } @@ -205,32 +262,111 @@ AdSlot adSlot = new AdSlot.Builder() .setCodeId(codeId) .setSupportDeepLink(true) - .setImageAcceptedSize(width, height) + .setExpressViewAcceptedSize(width, height) .setAdCount(count) //璇锋眰骞垮憡鏁伴噺涓�1鍒�3鏉� .build(); - mTTAdNative.loadFeedAd(adSlot, new TTAdNative.FeedAdListener() { + mTTAdNative.loadNativeExpressAd(adSlot, new TTAdNative.NativeExpressAdListener() { @Override public void onError(int i, String s) { adLoadListener.onSuccess(null); } @Override - public void onFeedAdLoad(List<TTFeedAd> list) { + public void onNativeExpressAdLoad(List<TTNativeExpressAd> list) { adLoadListener.onSuccess(list); } }); } + + + /** + * 娓叉煋妯℃澘骞垮憡 + * + * @param activity + * @param ad + * @param fl_ad + * @param adEventListener + */ + public static void render(Activity activity, final ExpressAdContainer ad, final FrameLayout fl_ad, final IAdEventListener adEventListener) { + fl_ad.removeAllViews(); + if (ad == null) {//骞垮憡涓虹┖ + fl_ad.setVisibility(View.GONE); + } else { + fl_ad.setVisibility(View.VISIBLE); + if (ad.getGdt() != null) { +// ad.getGdt().setAdEventListener(new AdEventListener() { +// @Override +// public void onClick() { +// +// } +// +// @Override +// public void onExposed() { +// +// } +// +// @Override +// public void onRenderSuccess() { +// fl_ad.addView(ad.getGdt().getAdView()); +// } +// +// @Override +// public void onRenderFail() { +// +// } +// +// @Override +// public void onAdClosed() { +// if (adEventListener != null) { +// adEventListener.closeAd(); +// } +// } +// }); + ad.getGdt().render(); + fl_ad.addView(ad.getGdt()); + + } else if (ad.getCsj() != null) { + ad.getCsj().setDislikeCallback(activity, new TTAdDislike.DislikeInteractionCallback() { + + @Override + public void onSelected(int i, String s) { + if (adEventListener != null) { + adEventListener.closeAd(); + } + } + + @Override + public void onCancel() { + + } + + @Override + public void onRefuse() { + + } + }); + ad.getCsj().render(); + fl_ad.addView(ad.getCsj().getExpressAdView()); + } + } + + } + interface IGDTAdLoadListener { public void onSuccess(List<NativeExpressADView> adList); } interface ICSJAdLoadListener { - public void onSuccess(List<TTFeedAd> adList); + public void onSuccess(List<TTNativeExpressAd> adList); } public interface IAdLoadListener { public void onSuccess(List<ExpressAdContainer> adList); } + + public interface IAdEventListener { + public void closeAd(); + } } -- Gitblit v1.8.0