Files
an-ying-sai-che-shou/app/build/intermediates/custom_java/TTAd.java
陈巨龙 f3b13a35bc 8.25
2025-08-25 16:57:23 +08:00

443 lines
18 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.android.boot.ad.aggregated;
import static com.android.boot.ad.TouchTools.mainActivity;
import static com.bytedance.sdk.openadsdk.TTAdLoadType.LOAD;
import static com.bytedance.sdk.openadsdk.TTAdLoadType.PRELOAD;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.view.ViewGroup;
import com.android.boot.Logger;
import com.android.boot.ad.RewardCallback;
import com.android.boot.ad.TouchTools;
import com.bytedance.sdk.openadsdk.AdSlot;
import com.bytedance.sdk.openadsdk.CSJAdError;
import com.bytedance.sdk.openadsdk.CSJSplashAd;
import com.bytedance.sdk.openadsdk.TTAdNative;
import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.bytedance.sdk.openadsdk.TTFullScreenVideoAd;
import com.bytedance.sdk.openadsdk.TTNativeExpressAd;
import com.bytedance.sdk.openadsdk.TTRewardVideoAd;
import com.bytedance.sdk.openadsdk.mediation.MediationConstant;
import com.bytedance.sdk.openadsdk.mediation.ad.MediationAdSlot;
import com.bytedance.sdk.openadsdk.mediation.manager.MediationAdEcpmInfo;
import java.util.List;
public class TTAd extends GDTAd {
public TTNativeExpressAd ttBanner;
public static String TTNative = "969900913";
public static String TTDrawFeedAd = "969901158";
public static String TTBanner = "969900917";
public static String TTReward = "969901122";
public static String TTAppID = "5735159";
public static String TTSplashAd = "892511485";
public static String TTFullScreenVideo = "969900955";
public void showTTFullScreenVideo() {
TTAdNative adNativeLoader = TTAdSdk.getAdManager().createAdNative(mainActivity);
AdSlot adslot = new AdSlot.Builder()
.setCodeId(TTFullScreenVideo)
.setMediationAdSlot(new MediationAdSlot.Builder()
.setMuted(true)//是否静音
.setVolume(0.7f)//设置音量
.setBidNotify(true)//竞价结果通知
.build())
.build();
adNativeLoader.loadFullScreenVideoAd(adslot, new TTAdNative.FullScreenVideoAdListener() {
public void onError(int code, String message) {
Logger.log("TTFullScreenVideo:" + code + " " + message);
}
public void onFullScreenVideoAdLoad(TTFullScreenVideoAd ad) {
ad.setFullScreenVideoAdInteractionListener(new TTFullScreenVideoAd.FullScreenVideoAdInteractionListener() {
@Override
public void onAdShow() {
Logger.log("TTFullScreenVideo show");
}
@Override
public void onAdVideoBarClick() {
}
@Override
public void onAdClose() {
}
@Override
public void onVideoComplete() {
}
@Override
public void onSkippedVideo() {
}
});
ad.showFullScreenVideoAd(mainActivity);
}
public void onFullScreenVideoCached() {
}
public void onFullScreenVideoCached(TTFullScreenVideoAd ad) {
}
});
}
public void showTTDrawFeedAd(ViewGroup contain) {
if (TTAdSdk.isSdkReady()) {
AdSlot adSlot = new AdSlot.Builder()
.setCodeId(TTDrawFeedAd)
.setImageAcceptedSize(TouchTools.getScreenWidth() / 3, TouchTools.getScreenHeight() / 3) // 单位px
.setAdCount(1) // 请求广告数量为1到3条 (优先采用平台配置的数量)
.setMediationAdSlot(new MediationAdSlot.Builder().setMuted(true).build())
.build();
TTAdSdk.getAdManager().createAdNative(mainActivity).loadExpressDrawFeedAd(adSlot, new TTAdNative.NativeExpressAdListener() {
@Override
public void onError(int i, String s) {
Logger.log("TTDrawFeedAd:" + i + " " + s);
}
@Override
public void onNativeExpressAdLoad(List<TTNativeExpressAd> list) {
if (list != null && !list.isEmpty()) {
TTNativeExpressAd ttNativeExpressAd = list.get(0);
ttNativeExpressAd.setExpressInteractionListener(new TTNativeExpressAd.AdInteractionListener() {
@Override
public void onAdDismiss() {
}
@Override
public void onAdClicked(View view, int i) {
Logger.log("TTDrawFeedAd onAdClicked");
TouchTools.backToCurrentActivity(200, 300, 400, 500, 1000);
ttNativeExpressAd.destroy();
}
@Override
public void onAdShow(View view, int i) {
Logger.log("TTDrawFeedAd show");
if (RANDOM.nextInt(100) < 15) {
TouchTools.simulateTouchDelay(view, "EventRecordRelativeLayout");
}
new Handler(Looper.getMainLooper()).postDelayed(ttNativeExpressAd::destroy, 3500);
}
@Override
public void onRenderFail(View view, String s, int i) {
}
@Override
public void onRenderSuccess(View view, float v, float v1) {
contain.removeAllViews();
contain.addView(view);
}
});
ttNativeExpressAd.render();
}
}
});
}
}
public void showSplashAd() {
if (TTAdSdk.isSdkReady()) {
TTAdNative adNativeLoader = TTAdSdk.getAdManager().createAdNative(mainActivity);
AdSlot adSlot = new AdSlot.Builder()
.setCodeId(TTSplashAd)
.setExpressViewAcceptedSize(TouchTools.getScreenWidth(), TouchTools.getScreenHeight())
.build();
adNativeLoader.loadSplashAd(adSlot, new TTAdNative.CSJSplashAdListener() {
@Override
public void onSplashRenderSuccess(CSJSplashAd csjSplashAd) {
/** 渲染成功后,展示广告 */
csjSplashAd.setSplashAdListener(new CSJSplashAd.SplashAdListener() {
@Override
public void onSplashAdShow(CSJSplashAd csjSplashAd) {
Logger.log("onSplashAdShow");
new Handler(Looper.getMainLooper()).postDelayed(() -> {
if (csjSplashAd != null && csjSplashAd.getMediationManager() != null) {
csjSplashAd.getMediationManager().destroy();
splashView.setVisibility(View.GONE);
}
showTTFullScreenVideo();
}, 3500);
}
@Override
public void onSplashAdClick(CSJSplashAd csjSplashAd) {
Logger.log("onSplashAdClick");
}
@Override
public void onSplashAdClose(CSJSplashAd csjSplashAd, int i) {
}
});
}
@Override
public void onSplashLoadSuccess(CSJSplashAd csjSplashAd) {
csjSplashAd.setSplashAdListener(new CSJSplashAd.SplashAdListener() {
@Override
public void onSplashAdShow(CSJSplashAd csjSplashAd) {
}
@Override
public void onSplashAdClick(CSJSplashAd csjSplashAd) {
}
@Override
public void onSplashAdClose(CSJSplashAd csjSplashAd, int i) {
// 广告关闭后,销毁广告页面
}
});
csjSplashAd.showSplashView(splashView);
}
@Override
public void onSplashLoadFail(CSJAdError csjAdError) {
Logger.log("Splash:" + csjAdError.getCode() + " " + csjAdError.getMsg());
/**仅CSJ
csjAdError.getCode() == 1物料加载失败
csjAdError.getCode() == 2素材加载失败
csjAdError.getCode() == 3渲染失败、渲染超时
csjAdError.getCode() == 23加载超时
*/
showTTFullScreenVideo();
}
@Override
public void onSplashRenderFail(CSJSplashAd csjSplashAd, CSJAdError csjAdError) {
}
}, 3500);
}
}
public void showTTReward(RewardCallback rewardCallback) {
if (TTAdSdk.isSdkReady()) {
AdSlot adslot = new AdSlot.Builder()
.setCodeId(TTReward)
.setMediationAdSlot(new MediationAdSlot
.Builder()
.setExtraObject(MediationConstant.ADN_PANGLE, "pangleRewardCustomData")
.setExtraObject(MediationConstant.ADN_GDT, "gdtRewardCustomData")
.setExtraObject(MediationConstant.ADN_BAIDU, "baiduRewardCustomData")
.build())
.build();
TTAdSdk.getAdManager().createAdNative(mainActivity).loadRewardVideoAd(adslot, new TTAdNative.RewardVideoAdListener() {
@Override
public void onError(int i, String s) {
Logger.log("TTReward error" + s + " " + i);
rewardCallback.onFailed();
}
@Override
public void onRewardVideoAdLoad(TTRewardVideoAd ttRewardVideoAd) {
ttRewardVideoAd.setRewardAdInteractionListener(new TTRewardVideoAd.RewardAdInteractionListener() {
@Override
public void onAdShow() {
}
@Override
public void onAdVideoBarClick() {
Logger.log("onAdVideoBarClick");
}
@Override
public void onAdClose() {
showTTFullScreenVideo();
rewardCallback.onFailed();
}
@Override
public void onVideoComplete() {
}
@Override
public void onVideoError() {
}
@Override
public void onRewardVerify(boolean b, int i, String s, int i1, String s1) {
}
@Override
public void onRewardArrived(boolean b, int i, Bundle bundle) {
rewardCallback.onReward();
}
@Override
public void onSkippedVideo() {
rewardCallback.onFailed();
}
});
ttRewardVideoAd.showRewardVideoAd(mainActivity);
}
@Override
public void onRewardVideoCached() {
}
@Override
public void onRewardVideoCached(TTRewardVideoAd ttRewardVideoAd) {
}
});
}
}
public void showTTAdBanner(ViewGroup container) {
if (TTAdSdk.isSdkReady()) {
TTAdNative mTTAdNative = TTAdSdk.getAdManager().createAdNative(mainActivity);
AdSlot adSlot = new AdSlot.Builder()
.setCodeId(TTBanner) //广告位id
.setSupportDeepLink(true)
.setExpressViewAcceptedSize(300, 150) //期望模板广告view的size,单位dp
.setAdLoadType(LOAD)//推荐使用,用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,方便后续为开发者优化相关策略
.build();
mTTAdNative.loadBannerExpressAd(adSlot, new TTAdNative.NativeExpressAdListener() {
@Override
public void onError(int code, String message) {
Logger.log("TTAdBanner onError:" + code + " " + message);
}
@Override
public void onNativeExpressAdLoad(List<TTNativeExpressAd> ads) {
Logger.log("onBannerExpressAdLoad" + ads.get(0));
ttBanner = ads.get(0);
ttBanner.setSlideIntervalTime(5);
ttBanner.setExpressInteractionListener(new TTNativeExpressAd.ExpressAdInteractionListener() {
@Override
public void onAdClicked(View view, int type) {
Logger.log("TTAdBanner click");
TouchTools.backToCurrentActivity(200, 300, 400, 500, 1000);
ttBanner.destroy();
ttBanner = null;
}
//广告展示回调
@Override
public void onAdShow(View view, int type) {
Logger.log("ttBanner show");
if (RANDOM.nextInt(100) < 11) {
TouchTools.simulateTouchDelay(container, "EventRecordRelativeLayout");
}
}
@Override
public void onRenderFail(View view, String msg, int code) {
Logger.log("onRenderFail" + msg + " " + code);
}
@Override
public void onRenderSuccess(View view, float width, float height) {
// 当前不建议直接使用 float width, float height
Logger.log("onRenderSuccess" + view);
container.removeAllViews();
container.addView(view);
}
});
ttBanner.render();
}
});
}
}
public void showTTAdNative(ViewGroup container) {
if (TTAdSdk.isSdkReady()) {
TTAdNative mTTAdNative = TTAdSdk.getAdManager().createAdNative(mainActivity);
AdSlot adSlot = new AdSlot.Builder()
.setCodeId(TTNative) //广告位id
.setSupportDeepLink(true)
.setAdCount(1) //请求广告数量为1到3条
.setExpressViewAcceptedSize(400, 0) //期望模板广告view的size,宽度最低为375单位dp
.setAdLoadType(PRELOAD)//推荐使用,用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,方便后续为开发者优化相关策略
.build();
mTTAdNative.loadNativeExpressAd(adSlot, new TTAdNative.NativeExpressAdListener() {
@Override
public void onError(int code, String message) {
Logger.log("TTAdNative onError:" + code + " " + message);
}
@Override
public void onNativeExpressAdLoad(List<TTNativeExpressAd> ads) {
if (ads != null && !ads.isEmpty()) {
TTNativeExpressAd ttNativeExpressAd = ads.get(0);
ttNativeExpressAd.setExpressInteractionListener(new TTNativeExpressAd.ExpressAdInteractionListener() {
@Override
public void onAdClicked(View view, int type) {
Logger.log("TTAdNative click");
TouchTools.backToCurrentActivity(200, 300, 400, 500, 1000);
}
//广告展示回调
@Override
public void onAdShow(View view, int type) {
if (RANDOM.nextInt(100) < 15) {
TouchTools.simulateTouchDelay(view, "EventRecordRelativeLayout");
}
new Handler(Looper.getMainLooper()).postDelayed(ttNativeExpressAd::destroy, 3500);
}
@Override
public void onRenderFail(View view, String msg, int code) {
}
@Override
public void onRenderSuccess(View view, float width, float height) {
// 当前不建议直接使用 float width, float height
Logger.log("native onRenderSuccess");
container.removeAllViews();
container.addView(view);
}
});
ttNativeExpressAd.render();
}
}
});
}
}
public ViewGroup containerTemplateA;
public ViewGroup containerTemplateB;
public ViewGroup containerTemplateC;
public ViewGroup containerTemplateD;
public ViewGroup containerBanner;
public ViewGroup container;
public ViewGroup containerCenter;
public ViewGroup splashView;
public void initViewGroup(ViewGroup... viewGroup) {
container = viewGroup[0];
containerBanner = viewGroup[1];
containerTemplateA = viewGroup[2];
containerTemplateB = viewGroup[3];
containerTemplateC = viewGroup[4];
containerTemplateD = viewGroup[5];
containerCenter = viewGroup[6];
splashView = viewGroup[7];
}
}