admin
2022-07-25 3a01c2df2522acec74565b343a1dbb7294667a55
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
package com.weikou.beibeivideo.util.ad.manager.gm;
 
import android.app.Activity;
import android.util.Log;
import android.view.Gravity;
import android.widget.FrameLayout;
 
//import com.bytedance.msdk.adapter.util.Logger;
//import com.bytedance.msdk.adapter.util.UIUtils;
//import com.bytedance.msdk.api.GMAdEcpmInfo;
//import com.bytedance.msdk.api.v2.GMMediationAdSdk;
//import com.bytedance.msdk.api.v2.GMSettingConfigCallback;
//import com.bytedance.msdk.api.v2.ad.nativeAd.GMNativeAd;
//import com.bytedance.msdk.api.v2.ad.nativeAd.GMNativeAdLoadCallback;
//import com.bytedance.msdk.api.v2.ad.nativeAd.GMUnifiedNativeAd;
//import com.bytedance.msdk.api.v2.slot.GMAdOptionUtil;
//import com.bytedance.msdk.api.v2.slot.GMAdSlotNative;
//import com.bytedance.msdk.api.v2.slot.paltform.GMAdSlotGDTOption;
import com.weikou.beibeivideo.util.DimenUtils;
 
import java.util.List;
 
public class GMAdFeedManager {
    private static final String TAG = GMAdFeedManager.class.getSimpleName();
 
//    private GMUnifiedNativeAd mGMUnifiedNativeAd;
//    private Activity mActivity;
//    private GMNativeAdLoadCallback mGMNativeAdLoadCallback;
//    private String mAdUnitId; //广告位
//    private int mAdCount; //广告数量
//    private int mStyleType; //模板类型,可以不传
//
//    public GMAdFeedManager(Activity activity, GMNativeAdLoadCallback gmNativeAdLoadCallback) {
//        mActivity = activity;
//        mGMNativeAdLoadCallback = gmNativeAdLoadCallback;
//    }
//
//    public GMUnifiedNativeAd getGMUnifiedNativeAd() {
//        return mGMUnifiedNativeAd;
//    }
//
//
//    /**
//     *
//     * @param adUnitId 广告位ID
//     * @param adCount 广告数量
//     *
//     */
//    /**
//     * @param adUnitId  广告位ID
//     * @param adCount   广告数量
//     * @param styleType //模板类型,兜底使用,可以不传(AdSlot.TYPE_EXPRESS_AD:模板广告 ; AdSlot.TYPE_NATIVE_AD:原生广告)
//     */
//    public void loadAdWithCallback(final String adUnitId, int adCount, int styleType) {
//        this.mAdUnitId = adUnitId;
//        this.mAdCount = adCount;
//        this.mStyleType = styleType;
//
//        /**
//         * 判断当前是否存在config 配置 ,如果存在直接加载广告 ,如果不存在则注册config加载回调
//         */
//        if (GMMediationAdSdk.configLoadSuccess()) {
//            Log.e(TAG, "load ad 当前config配置存在,直接加载广告");
//            loadAd(adUnitId, adCount, styleType);
//        } else {
//            Log.e(TAG, "load ad 当前config配置不存在,正在请求config配置....");
//            GMMediationAdSdk.registerConfigCallback(mSettingConfigCallback); //不用使用内部类,否则在ondestory中无法移除该回调
//        }
//    }
//
//    private void loadAd(String adUnitId, int adCount, int styleType) {
//        mGMUnifiedNativeAd = new GMUnifiedNativeAd(mActivity, adUnitId);//模板视频
//
//        // 针对Gdt Native自渲染广告,可以自定义gdt logo的布局参数。该参数可选,非必须。
//        FrameLayout.LayoutParams gdtNativeAdLogoParams =
//                new FrameLayout.LayoutParams(
//                        DimenUtils.dip2px(mActivity.getApplicationContext(), 40),
//                        DimenUtils.dip2px(mActivity.getApplicationContext(), 13),
//                        Gravity.RIGHT | Gravity.TOP); // 例如,放在右上角
//
//
//        GMAdSlotGDTOption.Builder adSlotNativeBuilder = GMAdOptionUtil.getGMAdSlotGDTOption()
//                .setNativeAdLogoParams(gdtNativeAdLogoParams);
//
//        /**
//         * 创建feed广告请求类型参数GMAdSlotNative,具体参数含义参考文档
//         * 备注
//         * 1: 如果是信息流自渲染广告,设置广告图片期望的图片宽高 ,不能为0
//         * 2:如果是信息流模板广告,宽度设置为希望的宽度,高度设置为0(0为高度选择自适应参数)
//         */
//        GMAdSlotNative adSlotNative = new GMAdSlotNative.Builder()
//                .setGMAdSlotBaiduOption(GMAdOptionUtil.getGMAdSlotBaiduOption().build())//百度相关的配置
//                .setGMAdSlotGDTOption(adSlotNativeBuilder.build())//gdt相关的配置
//                .setAdmobNativeAdOptions(GMAdOptionUtil.getAdmobNativeAdOptions())//admob相关配置
//                .setAdStyleType(styleType)//必传,表示请求的模板广告还是原生广告,AdSlot.TYPE_EXPRESS_AD:模板广告 ; AdSlot.TYPE_NATIVE_AD:原生广告
//                // 备注
//                // 1:如果是信息流自渲染广告,设置广告图片期望的图片宽高 ,不能为0
//                // 2:如果是信息流模板广告,宽度设置为希望的宽度,高度设置为0(0为高度选择自适应参数)
//                .setImageAdSize((int) DimenUtils.px2dip(mActivity, DimenUtils.getScreenWidth(mActivity.getApplicationContext())), 340)// 必选参数 单位dp ,详情见上面备注解释
//                .setAdCount(adCount)//请求广告数量为1到3条
//                .setBidNotify(true)//开启bidding比价结果通知,默认值为false
//                .build();
//
//        //请求广告,调用feed广告异步请求接口,加载到广告后,拿到广告素材自定义渲染
//        /**
//         * 注:每次加载信息流广告的时候需要新建一个GMUnifiedNativeAd,否则可能会出现广告填充问题
//         * (例如:mTTAdNative = new GMUnifiedNativeAd(this, mAdUnitId);)
//         */
//        mGMUnifiedNativeAd.loadAd(adSlotNative, mGMNativeAdLoadCallback);
//    }
//
//    public void destroy() {
//        if (mGMUnifiedNativeAd != null) {
//            mGMUnifiedNativeAd.destroy();
//        }
//        mActivity = null;
//        mGMNativeAdLoadCallback = null;
//        GMMediationAdSdk.unregisterConfigCallback(mSettingConfigCallback); //注销config回调
//    }
//
//    /**
//     * config回调
//     */
//    private GMSettingConfigCallback mSettingConfigCallback = new GMSettingConfigCallback() {
//        @Override
//        public void configLoad() {
//            Log.e(TAG, "load ad 在config 回调中加载广告");
//            loadAd(mAdUnitId, mAdCount, mStyleType);
//        }
//    };
//
//
//    //-----------以下方法非必须 ,按需使用--------------
//
//    //打印已经加载广告的信息
//    public void printLoadAdInfo() {
//        if (mGMUnifiedNativeAd == null) {
//            return;
//        }
//        /**
//         * 获取已经加载的clientBidding ,多阶底价广告的相关信息
//         */
//        List<GMAdEcpmInfo> gmAdEcpmInfos = mGMUnifiedNativeAd.getMultiBiddingEcpm();
//        if (gmAdEcpmInfos != null) {
//            for (GMAdEcpmInfo info : gmAdEcpmInfos) {
//                Log.e(TAG, "***多阶+client相关信息*** AdNetworkPlatformId" + info.getAdNetworkPlatformId()
//                        + "  AdNetworkRitId:" + info.getAdNetworkRitId()
//                        + "  ReqBiddingType:" + info.getReqBiddingType()
//                        + "  PreEcpm:" + info.getPreEcpm()
//                        + "  LevelTag:" + info.getLevelTag()
//                        + "  ErrorMsg:" + info.getErrorMsg()
//                        + "  request_id:" + info.getRequestId()
//                        + "  SdkName:" + info.getAdNetworkPlatformName()
//                        + "  CustomSdkName:" + info.getCustomAdNetworkPlatformName());
//            }
//        }
//
//        /**
//         * 获取获取当前缓存池的全部信息
//         */
//        List<GMAdEcpmInfo> gmCacheInfos = mGMUnifiedNativeAd.getCacheList();
//        if (gmCacheInfos != null) {
//            for (GMAdEcpmInfo info : gmCacheInfos) {
//                Log.e(TAG, "   ");
//                Log.e(TAG, "***缓存池的全部信息*** AdNetworkPlatformId" + info.getAdNetworkPlatformId()
//                        + "  AdNetworkRitId:" + info.getAdNetworkRitId()
//                        + "  ReqBiddingType:" + info.getReqBiddingType()
//                        + "  PreEcpm:" + info.getPreEcpm()
//                        + "  LevelTag:" + info.getLevelTag()
//                        + "  ErrorMsg:" + info.getErrorMsg()
//                        + "  request_id:" + info.getRequestId()
//                        + "  SdkName:" + info.getAdNetworkPlatformName()
//                        + "  CustomSdkName:" + info.getCustomAdNetworkPlatformName());
//            }
//        }
//    }
//
//    //打印加载失败的adn错误信息
//    public void printLoadFailAdnInfo() {
//        if (mGMUnifiedNativeAd == null) {
//            return;
//        }
//
//        // 获取本次waterfall加载中,加载失败的adn错误信息。
//        Log.d(TAG, "reward ad loadinfos: " + mGMUnifiedNativeAd.getAdLoadInfoList());
//    }
//
//    //打印已经展示的广告信息
//    public void printShowAdInfo(GMNativeAd gmNativeAd) {
//        if (gmNativeAd == null) {
//            return;
//        }
//        GMAdEcpmInfo gmAdEcpmInfo = gmNativeAd.getShowEcpm();
//        if (gmAdEcpmInfo == null) {
//            return;
//        }
//
//        Logger.e(TAG, "展示的广告信息 :adNetworkPlatformName: " + gmAdEcpmInfo.getAdNetworkPlatformName()
//                + "   CustomAdNetworkPlatformName: " + gmAdEcpmInfo.getCustomAdNetworkPlatformName()
//                + "   adNetworkRitId: " + gmAdEcpmInfo.getAdNetworkRitId()
//                + "   preEcpm: " + gmAdEcpmInfo.getPreEcpm());
//    }
 
}