| | |
| | | android:label="@string/permlab_downloadCompletedIntent" |
| | | android:protectionLevel="normal" /> |
| | | |
| | | |
| | | |
| | | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
| | | <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> |
| | | <uses-permission android:name="android.permission.INTERNET" /> |
| | |
| | | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
| | | <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> |
| | | <uses-permission android:name="android.permission.GET_TASKS" /> |
| | | <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> |
| | | <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> |
| | | <uses-permission android:name="com.ddysvideo.mozillaonline.permission.ACCESS_DOWNLOAD_MANAGER" /> |
| | | <uses-permission android:name="com.ddysvideo.mozillaonline.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED" /> |
| | |
| | | android:protectionLevel="signature" /> |
| | | <uses-permission android:name="${applicationId}.permission.KW_SDK_BROADCAST" /> |
| | | |
| | | <uses-sdk tools:overrideLibrary="com.bytedance.pangrowthsdk,com.bytedance.novel.pangolin,com.bytedance.sdk.dp.dpsdk_lite,com.bytedance.sdk.dp.dpsdk_live,com.byted.live.api,com.bytedance.pangolin.game,com.bytedance.miniapp,com.volcengine.mars.utility,com.shuyu.gsyvideoplayer.lib,com.shuyu.gsyvideoplayer,tv.danmaku.ijk.media.exo2,com.shuyu.gsyvideoplayer.armv5,com.shuyu.gsyvideoplayer.armv7a,com.shuyu.gsyvideoplayer.armv64,com.shuyu.gsyvideoplayer.x86_64,com.shuyu.gsyvideoplayer.x86,com.shuyu.gsy.base,shuyu.com.androidvideocache" /> |
| | | <!-- gromore --> |
| | | <permission |
| | | android:name="${applicationId}.openadsdk.permission.TT_PANGOLIN" |
| | | android:protectionLevel="signature" /> |
| | | <uses-permission android:name="${applicationId}.openadsdk.permission.TT_PANGOLIN" /> |
| | | |
| | | |
| | | |
| | | <uses-sdk tools:overrideLibrary="com.pangrowth.adclog,com.bytedance.pangrowthsdk,com.bytedance.novel.pangolin,com.bytedance.sdk.dp.dpsdk_lite,com.bytedance.sdk.dp.dpsdk_live,com.byted.live.api,com.bytedance.pangolin.game,com.bytedance.miniapp,com.volcengine.mars.utility,com.shuyu.gsyvideoplayer.lib,com.shuyu.gsyvideoplayer,tv.danmaku.ijk.media.exo2,com.shuyu.gsyvideoplayer.armv5,com.shuyu.gsyvideoplayer.armv7a,com.shuyu.gsyvideoplayer.armv64,com.shuyu.gsyvideoplayer.x86_64,com.shuyu.gsyvideoplayer.x86,com.shuyu.gsy.base,shuyu.com.androidvideocache" /> |
| | | |
| | | |
| | | <application |
| | |
| | | android:value="570f28a578d6e12cba6f7f200b8d1c83"></meta-data> |
| | | <meta-data |
| | | android:name="UMENG_CHANNEL" |
| | | android:value="VIVO"></meta-data> |
| | | android:value="QQ"></meta-data> |
| | | |
| | | |
| | | <provider |
| | |
| | | android:name="com.mozillaonline.providers.downloads.DownloadReceiver" |
| | | android:exported="false"> |
| | | <intent-filter> |
| | | |
| | | <!-- <action android:name="android.intent.action.BOOT_COMPLETED" /> --> |
| | | <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> |
| | | </intent-filter> |
| | | </receiver> |
| | |
| | | implementation files('libs/wup-1.0.0.E-SNAPSHOT.jar') |
| | | implementation files('libs/FunshionAD-1.3.16.aar') |
| | | // implementation files('libs/FunshionBase-1.6.1.aar') |
| | | implementation files('libs/FunshionBase-2.0.0.0.aar') |
| | | implementation files('libs/FunshionBase-2.0.0.2.aar') |
| | | implementation files('libs/FunshionPlaySDK-2.0.0.2-buwanysdq.aar') |
| | | |
| | | |
| | |
| | | implementation 'com.qhutch.elevationimageview:elevationimageview:2.4' |
| | | |
| | | //穿山甲 |
| | | implementation 'com.pangle.cn:ads-sdk-pro:4.3.0.8' |
| | | implementation 'com.pangle.cn:ads-sdk-pro:4.6.0.7' |
| | | |
| | | |
| | | implementation('com.pangle.cn:pangrowth-sdk:2.3.0.0') { |
| | | implementation('com.pangle.cn:pangrowth-sdk:2.7.0.0') { |
| | | exclude group: 'com.pangle.cn', module: 'pangrowth-dpsdk-live' |
| | | exclude group: 'com.pangle.cn', module: 'pangrowth-game-sdk' |
| | | exclude group: 'com.pangle.cn', module: 'pangrowth-luckycat-sdk' |
| | | exclude group: 'com.squareup.okhttp3', module: 'okhttp' |
| | | |
| | | |
| | | |
| | | // exclude group: 'com.pangle.cn', module: 'pangrowth-dpsdk' |
| | | } |
| | | implementation('com.bytedance.applog:RangersAppLog-Lite-cn:6.6.2') |
| | |
| | | |
| | | //indicator |
| | | implementation 'com.github.hackware1993:MagicIndicator:1.7.0' |
| | | |
| | | } |
| | | android { |
| | | signingConfigs { |
| | |
| | | |
| | | defaultConfig { |
| | | applicationId "com.doudou.ysvideo" |
| | | versionCode 132 |
| | | versionName "3.10.14" |
| | | versionCode 134 |
| | | versionName "3.10.16" |
| | | multiDexEnabled = true |
| | | minSdkVersion 17 |
| | | targetSdkVersion 29 |
| | |
| | | } |
| | | //配置自定义打包名称 |
| | | applicationVariants.all { variant -> |
| | | def stringsFile = android.sourceSets.main.res.sourceFiles.find { it.name.equals 'strings.xml' } |
| | | def appName = new XmlParser().parse(stringsFile).string.find { it.@name.equals 'app_name' }.text() |
| | | variant.outputs.all { |
| | | def fileName |
| | | if (variant.buildType.name.equals('release')) { |
| | | fileName = "buwan_${variant.mergedFlavor.versionName}_release.apk" |
| | | fileName = "${appName}_${variant.mergedFlavor.versionName}_release.apk" |
| | | } else if (variant.buildType.name.equals('debug')) { |
| | | fileName = "${variant.mergedFlavor.versionName}_debug.apk" |
| | | } |
| | |
| | | |
| | | maven { url 'https://jitpack.io' } |
| | | |
| | | |
| | | |
| | | maven { |
| | | url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" |
| | | } |
| | | } |
| | |
| | | import com.weikou.beibeivideo.util.ad.AdUtil; |
| | | import com.weikou.beibeivideo.util.ad.CSJConstant; |
| | | import com.weikou.beibeivideo.util.ad.GDTConstant; |
| | | import com.weikou.beibeivideo.util.ad.GMAdManagerHolder; |
| | | import com.weikou.beibeivideo.util.ad.TTAdManagerHolder; |
| | | import com.weikou.beibeivideo.util.downutil.StringUtils; |
| | | import com.yeshi.appupdate.util.PackageUtils2; |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | initWX(application); |
| | | initX5(application); |
| | | initNovel(application); |
| | | initDPSDK(application); |
| | | } |
| | | |
| | | private static String getProcessName(Context context) { |
| | |
| | | /** |
| | | * 穿山甲广告初始化 |
| | | */ |
| | | private static void initCSJAd(Context context, InitListener initListener) { |
| | | private static void initCSJAd(Application context, InitListener initListener) { |
| | | TTAdManagerHolder.init(context, new TTAdSdk.InitCallback() { |
| | | @Override |
| | | public void success() { |
| | | if (initListener != null) |
| | | initListener.onFinish(); |
| | | initDPSDK(context); |
| | | } |
| | | |
| | | @Override |
| | |
| | | .needInitAppLog(false) |
| | | .initListener(new DPSdkConfig.InitListener() { |
| | | @Override |
| | | public void onInitComplete(boolean b) { |
| | | public void onInitComplete(boolean b, String s) { |
| | | dpSDKIninted = b; |
| | | } |
| | | }) //接入了红包功能需要传入的参数,没有接入的话可以忽略该配置 |
| | |
| | | package com.weikou.beibeivideo.ui; |
| | | |
| | | import android.Manifest; |
| | | import android.app.Activity; |
| | | import android.app.AlertDialog; |
| | | import android.app.Dialog; |
| | | import android.content.Context; |
| | |
| | | import android.content.pm.PackageManager; |
| | | import android.graphics.Bitmap; |
| | | import android.graphics.drawable.Drawable; |
| | | import android.net.Uri; |
| | | import android.os.AsyncTask; |
| | | import android.os.Build; |
| | | import android.os.Bundle; |
| | | import android.provider.Settings; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | import androidx.core.app.ActivityCompat; |
| | | import androidx.core.content.ContextCompat; |
| | | import androidx.fragment.app.FragmentActivity; |
| | | |
| | | import android.telephony.TelephonyManager; |
| | | import android.view.KeyEvent; |
| | | import android.view.ViewGroup; |
| | | import android.widget.ImageView; |
| | | import android.widget.TextView; |
| | | |
| | | import com.bytedance.sdk.openadsdk.AdSlot; |
| | | import com.google.gson.Gson; |
| | | import com.lcjian.library.dialog.DialogUtil; |
| | | import com.lcjian.library.util.ScreenUtils; |
| | |
| | | import com.weikou.beibeivideo.util.ad.CSJConstant; |
| | | import com.weikou.beibeivideo.util.ad.GDTConstant; |
| | | import com.weikou.beibeivideo.util.ad.KSConstant; |
| | | import com.weikou.beibeivideo.util.ad.manager.gm.GMAdSplashManager; |
| | | import com.weikou.beibeivideo.util.ui.TopStatusSettings; |
| | | |
| | | import org.apache.http.Header; |
| | |
| | | private static final int REQUEST_CODE = 0; // 请求码 |
| | | private PermissionsChecker mPermissionsChecker; // 权限检测器 |
| | | |
| | | private GMAdSplashManager mGMAdSplashManager; |
| | | |
| | | @Override |
| | | protected void onCreate(Bundle savedInstanceState) { |
| | | super.onCreate(savedInstanceState); |
| | |
| | | ad_close_time = findViewById(R.id.ad_close_time); |
| | | iv_bg = findViewById(R.id.iv_bg); |
| | | |
| | | SharedPreferences preferences = getSharedPreferences("link_page", |
| | | Context.MODE_PRIVATE); |
| | | isInput = preferences.getBoolean("isInput", false); |
| | | |
| | | mPermissionsChecker = new PermissionsChecker(this); |
| | | // 初始化大设备 |
| | | SDCardUtil.initStorage(this); |
| | | |
| | | |
| | | showProtocol(); |
| | | //设置背景图片 |
| | | Drawable drawable = getResources().getDrawable(R.drawable.ic_splash_bg); |
| | |
| | | iv_bg.setImageBitmap(bitmap1); |
| | | } |
| | | |
| | | private void init(){ |
| | | SharedPreferences preferences = getSharedPreferences("link_page", |
| | | Context.MODE_PRIVATE); |
| | | isInput = preferences.getBoolean("isInput", false); |
| | | |
| | | mPermissionsChecker = new PermissionsChecker(this); |
| | | // 初始化大设备 |
| | | SDCardUtil.initStorage(this); |
| | | myRequetPermission(); |
| | | } |
| | | |
| | | private void showProtocol() { |
| | | String data = "尊敬的用户:<br>感谢您对" + getResources().getString(R.string.app_name) + "一直以来的信任!<br>"; |
| | |
| | | data += String.format("<a href='%s'>《隐私政策》</a>和", BeibeiConstant.PRIVACY_POLICY); |
| | | data += String.format("<a href='%s'>《用户协议》</a>", BeibeiConstant.USER_AGREEMENT); |
| | | data += "内的所有条款,<b>尤其是:<br>" + |
| | | "1、我们对您的个人信息(包括但不限于<font color='#FF0000'>设备MAC地址、IMEI/Android ID</font>等信息)的收集/保存/使用/对外提供/保护等规则条款,以及您的用户权利等条款;<br>" + |
| | | "1、我们对您的个人信息(包括但不限于<font color='#FF0000'>设备MAC地址、IMEI/AndroidID/OAID/IMSI/ICCID/GAID/MEID</font>等信息)的收集/保存/使用/对外提供/保护等规则条款,以及您的用户权利等条款;<br>" + |
| | | "2、约定我们的限制责任、免责条款;<br>" + |
| | | "3、其他以加粗或斜体字进行标识的重要条款。</b><br>" + |
| | | "如您对协议有任何疑虑,可通过电子邮箱: yesbd@qq.com 向我们询问,我们将为您竭诚解答。您点击“同意并继续”的行为代表您已阅读完毕并接受以上协议全部条款。如您同意以上协议内容,请您点击“同意并继续”,开始使用您的产品。"; |
| | |
| | | @Override |
| | | public void onClick(DialogInterface dialogInterface, int i) { |
| | | dialogInterface.dismiss(); |
| | | myRequetPermission(); |
| | | init(); |
| | | } |
| | | }).create().show(); |
| | | |
| | |
| | | vg_ad.post(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | myRequetPermission(); |
| | | init(); |
| | | } |
| | | }); |
| | | } |
| | |
| | | @Override |
| | | protected void onDestroy() { |
| | | super.onDestroy(); |
| | | if (mGMAdSplashManager != null) { |
| | | // mGMAdSplashManager.destroy(); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | private SplashADFragment splashADFragment; |
| | | |
| | | private void loadSplashAd(AdUtil.AD_TYPE adType, String pid) { |
| | | |
| | | AdPidInfo adPidInfo2 = null; |
| | | if (adType == AdUtil.AD_TYPE.gdt) { |
| | | adPidInfo2 = new AdPidInfo(AdUtil.AD_TYPE.csj, CSJConstant.SPLASH_AD); |
| | |
| | | if (requestCode == REQUEST_CODE) { |
| | | for (int i = 0; i < permissions.length; i++) { |
| | | if (grantResults[i] == PERMISSION_GRANTED) {//选择了“始终允许” |
| | | myRequetPermission(); |
| | | init(); |
| | | } else { |
| | | //拒绝了授权 |
| | | if (grantResults[i] == PERMISSION_DENIED) { |
| | |
| | | import com.weikou.beibeivideo.util.DimenUtils; |
| | | import com.weikou.beibeivideo.util.ad.AdUtil; |
| | | import com.weikou.beibeivideo.util.ad.CSJConstant; |
| | | import com.weikou.beibeivideo.util.ad.DownloadConfirmHelper; |
| | | import com.weikou.beibeivideo.util.downutil.StringUtils; |
| | | import com.weikou.beibeivideo.util.ui.IPageEventListener; |
| | | |
| | |
| | | } |
| | | }); |
| | | // loadCSJ(CSJConstant.PLAY_VIDEO_PRE, videoAdListener); |
| | | loadGDT( pid, videoAdListener); |
| | | loadGDT(pid, videoAdListener); |
| | | } |
| | | |
| | | |
| | |
| | | * @param pid |
| | | * @param videoAdListener |
| | | */ |
| | | private void loadGDT( String pid, IVideoAdListener videoAdListener) { |
| | | private void loadGDT(String pid, IVideoAdListener videoAdListener) { |
| | | Log.i(TAG, "loadGDT"); |
| | | fl_ad.setVisibility(View.GONE); |
| | | mContainer.setVisibility(View.VISIBLE); |
| | |
| | | public void onADLoaded(List<NativeUnifiedADData> list) { |
| | | Log.i(TAG, "onADLoaded"); |
| | | final NativeUnifiedADData ad = list.get(0); |
| | | ad.setDownloadConfirmListener(DownloadConfirmHelper.DOWNLOAD_CONFIRM_LISTENER); |
| | | //填充内容 |
| | | mGDTAdData = ad; |
| | | List<View> clickableViews = new ArrayList<>(); |
| | |
| | | //拉取详情问题 |
| | | UserUtil.updateUserInfo(getApplicationContext(), null); |
| | | |
| | | //暂时取消推送 |
| | | //推送 |
| | | PushUtil.inintPush(getApplication(), new PushUtil.ITokenListener() { |
| | | |
| | | @Override |
| | | public void onToken(String romType, String regId) { |
| | | runOnUiThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | BeibeiVideoAPI.pushBindToken(getApplication(), romType, regId, new BasicTextHttpResponseHandler() { |
| | | @Override |
| | | public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { |
| | | |
| | | } |
| | | }, true); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | // PushUtil.inintPush(getApplication(), new PushUtil.ITokenListener() { |
| | | // |
| | | // @Override |
| | | // public void onToken(String romType, String regId) { |
| | | // runOnUiThread(new Runnable() { |
| | | // @Override |
| | | // public void run() { |
| | | // BeibeiVideoAPI.pushBindToken(getApplication(), romType, regId, new BasicTextHttpResponseHandler() { |
| | | // @Override |
| | | // public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { |
| | | // |
| | | // } |
| | | // }, true); |
| | | // } |
| | | // }); |
| | | // } |
| | | // }); |
| | | //显示广告 |
| | | showInterstitialAd(); |
| | | } |
| | |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.lcjian.library.RetainViewFragment; |
| | | import com.lcjian.library.dialog.DialogUtil; |
| | | import com.lcjian.library.util.ManifestDataUtil; |
| | | import com.lcjian.library.util.SingleToast; |
| | | import com.lcjian.library.util.common.DimenUtils; |
| | | import com.lcjian.library.util.common.StringUtils; |
| | |
| | | |
| | | // 加载播放页第一条广告,先设置加载上下文环境和条件 |
| | | private void loadAD1() { |
| | | //vivo无广告 |
| | | if ("vivo".equalsIgnoreCase(ManifestDataUtil.getAppMetaData(getContext(), "UMENG_CHANNEL"))) { |
| | | return; |
| | | } |
| | | |
| | | |
| | | if (AdUtil.getAdType(getContext(), AdPositionEnum.splash) == null) { |
| | | return; |
| | |
| | | import com.weikou.beibeivideo.util.JsonUtil; |
| | | import com.weikou.beibeivideo.util.UmengEventUtil; |
| | | import com.weikou.beibeivideo.util.VideoUtil; |
| | | import com.weikou.beibeivideo.util.ad.AdUtil; |
| | | import com.weikou.beibeivideo.util.ad.CSJConstant; |
| | | import com.weikou.beibeivideo.util.ad.FullVideoAdManager; |
| | | import com.weikou.beibeivideo.util.ad.InterstitialAdUtil; |
| | | import com.weikou.beibeivideo.util.goldcorn.GoldCornUtil; |
| | | import com.weikou.beibeivideo.util.ui.IPageEventListener; |
| | | import com.weikou.beibeivideo.util.ui.TopStatusSettings; |
| | |
| | | private TTFullScreenVideoAd mTTFullScreenVideoAd; |
| | | |
| | | private void showInterstitialAd() { |
| | | |
| | | // InterstitialAdUtil.showAd(this, AdUtil.AD_TYPE.csj,"946608275"); |
| | | // if(1>0){ |
| | | // return; |
| | | // } |
| | | |
| | | TTAdNative mTTAdNative = TTAdSdk.getAdManager().createAdNative(VideoDetailActivity2.this); |
| | | AdSlot adSlot = new AdSlot.Builder() |
| | | .setCodeId("946608275") |
| | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.lcjian.library.util.ManifestDataUtil; |
| | | import com.lcjian.library.util.common.StringUtils; |
| | | import com.lcjian.library.widget.FlowLayout; |
| | | import com.lcjian.library.widget.MyGridView; |
| | |
| | | |
| | | // 1.加载广告,先设置加载上下文环境和条件 |
| | | private void initAdvertisement() { |
| | | //vivo无广告 |
| | | if ("vivo".equalsIgnoreCase(ManifestDataUtil.getAppMetaData(getApplicationContext(), "UMENG_CHANNEL"))) { |
| | | return; |
| | | } |
| | | |
| | | AdUtil.AD_TYPE adType1 = AdUtil.getAdType(getApplicationContext(), AdPositionEnum.videoSearch); |
| | | if (adType1 == AdUtil.AD_TYPE.gdt) { |
| | | adType1 = AdUtil.AD_TYPE.gdt2; |
| | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.lcjian.library.util.ManifestDataUtil; |
| | | import com.lcjian.library.util.common.SoftKeyboardUtils; |
| | | import com.lcjian.library.util.common.StringUtils; |
| | | import com.qq.e.ads.cfg.VideoOption; |
| | |
| | | |
| | | //拉取2.0的自渲染广告 |
| | | private void loadAd() { |
| | | //vivo无广告 |
| | | if ("vivo".equalsIgnoreCase(ManifestDataUtil.getAppMetaData(getApplicationContext(), "UMENG_CHANNEL"))) { |
| | | return; |
| | | } |
| | | |
| | | String pid = GDTConstant.PID_2_SEARCH_RESULT_ALBUM; |
| | | NativeUnifiedAD mAdManager = new NativeUnifiedAD(this, pid, new NativeADUnifiedListener() { |
| | | |
| | |
| | | import android.view.ViewGroup; |
| | | import android.widget.FrameLayout; |
| | | |
| | | import com.lcjian.library.util.ManifestDataUtil; |
| | | import com.lcjian.library.util.SystemCommon; |
| | | import com.qq.e.ads.nativ.NativeExpressAD; |
| | | import com.weikou.beibeivideo.R; |
| | |
| | | |
| | | // 1.加载广告,先设置加载上下文环境和条件 |
| | | private void loadAd(boolean show) { |
| | | //vivo无广告 |
| | | if ("vivo".equalsIgnoreCase(ManifestDataUtil.getAppMetaData(context, "UMENG_CHANNEL"))) { |
| | | return; |
| | | } |
| | | |
| | | expressAdManager.loadAppExitAd(new ExpressAdManager.IAdLoadListener() { |
| | | @Override |
New file |
| | |
| | | package com.weikou.beibeivideo.util.ad; |
| | | |
| | | import android.app.Activity; |
| | | import android.app.AlertDialog; |
| | | import android.content.DialogInterface; |
| | | import android.util.Log; |
| | | |
| | | import com.qq.e.comm.compliance.DownloadConfirmCallBack; |
| | | import com.qq.e.comm.compliance.DownloadConfirmListener; |
| | | |
| | | public class DownloadConfirmHelper { |
| | | private static final String TAG = "DownloadConfirmHelper"; |
| | | public static final DownloadConfirmListener DOWNLOAD_CONFIRM_LISTENER = |
| | | new DownloadConfirmListener() { |
| | | |
| | | |
| | | @Override |
| | | public void onDownloadConfirm(Activity context, int scenes, String infoUrl, |
| | | DownloadConfirmCallBack callBack) { |
| | | Log.d(TAG, "scenes:" + scenes + " info url:" + infoUrl); |
| | | |
| | | //获取对应的json数据并自定义显示 |
| | | new AlertDialog.Builder(context).setMessage("是否下载该应用?").setNegativeButton("取消", new DialogInterface.OnClickListener() { |
| | | @Override |
| | | public void onClick(DialogInterface dialog, int which) { |
| | | dialog.dismiss(); |
| | | callBack.onCancel(); |
| | | } |
| | | }).setPositiveButton("下载", new DialogInterface.OnClickListener() { |
| | | @Override |
| | | public void onClick(DialogInterface dialog, int which) { |
| | | dialog.dismiss(); |
| | | callBack.onConfirm(); |
| | | } |
| | | }).create().show(); |
| | | |
| | | |
| | | //如果不想自己解析json数据可以直接使用webView展示应用信息,和上面二选一 |
| | | //new DownloadApkConfirmDialogWebView(context, infoUrl, callBack).show();//使用webview显示 |
| | | } |
| | | }; |
| | | } |
| | |
| | | import com.bytedance.sdk.openadsdk.TTAdManager; |
| | | import com.bytedance.sdk.openadsdk.TTAdNative; |
| | | import com.bytedance.sdk.openadsdk.TTFullScreenVideoAd; |
| | | import com.lcjian.library.util.ManifestDataUtil; |
| | | import com.qq.e.ads.cfg.VideoOption; |
| | | import com.qq.e.ads.interstitial2.UnifiedInterstitialAD; |
| | | import com.qq.e.ads.interstitial2.UnifiedInterstitialADListener; |
| | | import com.qq.e.ads.interstitial2.UnifiedInterstitialMediaListener; |
| | | import com.qq.e.comm.util.AdError; |
| | | import com.weikou.beibeivideo.ui.VBrowserActivity; |
| | | import com.weikou.beibeivideo.util.BeibeiConstant; |
| | | import com.weikou.beibeivideo.util.DimenUtils; |
| | | |
| | |
| | | private void loadCSJ(final Context context, final IFullVideoAdListener adListener) { |
| | | int w = DimenUtils.getScreenWidth(context); |
| | | int h = DimenUtils.getScreenHeight(context); |
| | | String channel = ManifestDataUtil.getAppMetaData(context, "UMENG_CHANNEL"); |
| | | String pid = "945393854"; |
| | | if ("huawei".equalsIgnoreCase(channel)) { |
| | | pid = "948943768"; |
| | | } |
| | | |
| | | |
| | | AdSlot adSlot = new AdSlot.Builder() |
| | | .setCodeId("945393854") |
| | | .setCodeId(pid) |
| | | .setSupportDeepLink(true) |
| | | .setExpressViewAcceptedSize(w, h) |
| | | .setOrientation(TTAdConstant.VERTICAL) |
New file |
| | |
| | | package com.weikou.beibeivideo.util.ad; |
| | | |
| | | import android.app.Activity; |
| | | import android.content.Context; |
| | | import android.provider.Settings; |
| | | |
| | | //import com.bytedance.msdk.api.UserInfoForSegment; |
| | | //import com.bytedance.msdk.api.v2.GMAdConfig; |
| | | //import com.bytedance.msdk.api.v2.GMAdConstant; |
| | | //import com.bytedance.msdk.api.v2.GMConfigUserInfoForSegment; |
| | | //import com.bytedance.msdk.api.v2.GMMediationAdSdk; |
| | | //import com.bytedance.msdk.api.v2.GMPangleOption; |
| | | //import com.bytedance.msdk.api.v2.GMPrivacyConfig; |
| | | //import com.bytedance.msdk.api.v2.GMSettingConfigCallback; |
| | | import com.lcjian.library.util.ManifestDataUtil; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | |
| | | public class GMAdManagerHolder { |
| | | // |
| | | // private static boolean sInit; |
| | | // |
| | | // public static void init(Context context, GMSettingConfigCallback callback) { |
| | | // doInit(context, callback); |
| | | // } |
| | | // |
| | | // public static void initUnitySdkBanner(Activity activity) { |
| | | // GMMediationAdSdk.initUnityForBanner(activity); |
| | | // } |
| | | // |
| | | // |
| | | // //step1:接入网盟广告sdk的初始化操作,详情见接入文档和穿山甲平台说明 |
| | | // private static void doInit(@NonNull Context context, GMSettingConfigCallback callback) { |
| | | // if (!sInit) { |
| | | // GMMediationAdSdk.registerConfigCallback(callback); |
| | | // GMMediationAdSdk.initialize(context, buildV2Config(context)); |
| | | // sInit = true; |
| | | // } |
| | | // } |
| | | // |
| | | // public static GMAdConfig buildV2Config(Context context) { |
| | | // GMConfigUserInfoForSegment userInfo = new GMConfigUserInfoForSegment(); |
| | | // userInfo.setUserId("msdk-demo"); |
| | | // userInfo.setGender(UserInfoForSegment.GENDER_MALE); |
| | | // userInfo.setChannel(ManifestDataUtil.getAppMetaData(context, "UMENG_CHANNEL")); |
| | | // userInfo.setSubChannel("msdk-sub-channel"); |
| | | // userInfo.setAge(999); |
| | | // userInfo.setUserValueGroup("msdk-demo-user-value-group"); |
| | | // |
| | | // Map<String, String> customInfos = new HashMap<>(); |
| | | // customInfos.put("aaaa", "test111"); |
| | | // customInfos.put("bbbb", "test222"); |
| | | // userInfo.setCustomInfos(customInfos); |
| | | // |
| | | // Map<String, Object> initConfig = new HashMap<>(); |
| | | // initConfig.put("1111", "22222"); |
| | | // initConfig.put("22222", "33333"); |
| | | // initConfig.put("44444", "5555"); |
| | | // return new GMAdConfig.Builder() |
| | | // .setAppId("5095354") |
| | | // .setAppName("影视大全") |
| | | // .setDebug(true) |
| | | // .setPublisherDid(getAndroidId(context)) |
| | | // .setOpenAdnTest(false) |
| | | // .setConfigUserInfoForSegment(userInfo) |
| | | // .setPangleOption(new GMPangleOption.Builder() |
| | | // .setIsPaid(false) |
| | | // .setTitleBarTheme(GMAdConstant.TITLE_BAR_THEME_DARK) |
| | | // .setAllowShowNotify(true) |
| | | // .setAllowShowPageWhenScreenLock(true) |
| | | // .setDirectDownloadNetworkType(GMAdConstant.NETWORK_STATE_WIFI, GMAdConstant.NETWORK_STATE_3G) |
| | | // .setIsUseTextureView(true) |
| | | // .setNeedClearTaskReset() |
| | | // .setKeywords("") |
| | | // .build()) |
| | | // .setPrivacyConfig(new GMPrivacyConfig() { |
| | | // // 重写相应的函数,设置需要设置的权限开关,不重写的将采用默认值 |
| | | // // 例如,重写isCanUsePhoneState函数返回true,表示允许使用ReadPhoneState权限。 |
| | | // @Override |
| | | // public boolean isCanUsePhoneState() { |
| | | // return true; |
| | | // } |
| | | // |
| | | // //当isCanUseWifiState=false时,可传入Mac地址信息,穿山甲sdk使用您传入的Mac地址信息 |
| | | // @Override |
| | | // public String getMacAddress() { |
| | | // return ""; |
| | | // } |
| | | // |
| | | // // 设置青少年合规,默认值GMAdConstant.ADULT_STATE.AGE_ADULT为成年人 |
| | | // @Override |
| | | // public GMAdConstant.ADULT_STATE getAgeGroup() { |
| | | // return GMAdConstant.ADULT_STATE.AGE_ADULT; |
| | | // } |
| | | // }) |
| | | // .setLocalExtra(initConfig) |
| | | // .build(); |
| | | // } |
| | | // |
| | | // public static String getAndroidId(Context context) { |
| | | // String androidId = null; |
| | | // try { |
| | | // androidId = Settings.System.getString(context.getContentResolver(), Settings.System.ANDROID_ID); |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // return androidId; |
| | | // } |
| | | |
| | | } |
| | |
| | | |
| | | import android.app.Activity; |
| | | import android.content.Context; |
| | | import android.os.Bundle; |
| | | import android.util.Log; |
| | | |
| | | import com.bytedance.sdk.openadsdk.AdSlot; |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onRewardArrived(boolean b, int i, Bundle bundle) { |
| | | |
| | | } |
| | | |
| | | //跳过视频播放回调 |
| | | @Override |
| | | public void onSkippedVideo() { |
| | |
| | | import android.content.Context; |
| | | import android.util.Log; |
| | | |
| | | import com.bytedance.sdk.openadsdk.LocationProvider; |
| | | import com.bytedance.sdk.openadsdk.TTAdConfig; |
| | | import com.bytedance.sdk.openadsdk.TTAdConstant; |
| | | import com.bytedance.sdk.openadsdk.TTAdManager; |
| | | import com.bytedance.sdk.openadsdk.TTAdSdk; |
| | | import com.bytedance.sdk.openadsdk.TTCustomController; |
| | | import com.weikou.beibeivideo.R; |
| | | import com.weikou.beibeivideo.entity.ad.AdPositionEnum; |
| | | |
| | |
| | | .appName(context.getString(R.string.app_name)) |
| | | .titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK) |
| | | .allowShowNotify(true) //是否允许sdk展示通知栏提示 |
| | | .debug(true) //测试阶段打开,可以通过日志排查问题,上线时去除该调用 |
| | | // .directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI) |
| | | .supportMultiProcess(true)//是否支持多进程 |
| | | .debug(false) //测试阶段打开,可以通过日志排查问题,上线时去除该调用 |
| | | .directDownloadNetworkType(null) |
| | | .supportMultiProcess(false)//是否支持多进程 |
| | | .customController(new TTCustomController() { |
| | | @Override |
| | | public boolean isCanUseLocation() { |
| | | return false; |
| | | } |
| | | |
| | | @Override |
| | | public LocationProvider getTTLocation() { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public boolean isCanUseAndroidId() { |
| | | return false; |
| | | } |
| | | }) |
| | | .asyncInit(true) |
| | | .needClearTaskReset(); |
| | | //.httpStack(new MyOkStack3())//自定义网络库,demo中给出了okhttp3版本的样例,其余请自行开发或者咨询工作人员。 |
| | | if (AdUtil.getAdType(context, AdPositionEnum.splashHotStart) != null) { |
| | | builder.directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI); |
| | | } |
| | | //if (AdUtil.getAdType(context, AdPositionEnum.splashHotStart) != null) { |
| | | // builder.directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI); |
| | | //} |
| | | |
| | | return builder.build(); |
| | | } |
New file |
| | |
| | | package com.weikou.beibeivideo.util.ad.manager.gm; |
| | | |
| | | import android.app.Activity; |
| | | import android.util.Log; |
| | | |
| | | //import com.bytedance.msdk.adapter.util.Logger; |
| | | //import com.bytedance.msdk.api.GMAdEcpmInfo; |
| | | //import com.bytedance.msdk.api.v2.GMAdSize; |
| | | //import com.bytedance.msdk.api.v2.GMMediationAdSdk; |
| | | //import com.bytedance.msdk.api.v2.GMSettingConfigCallback; |
| | | //import com.bytedance.msdk.api.v2.ad.banner.GMBannerAd; |
| | | //import com.bytedance.msdk.api.v2.ad.banner.GMBannerAdListener; |
| | | //import com.bytedance.msdk.api.v2.ad.banner.GMBannerAdLoadCallback; |
| | | //import com.bytedance.msdk.api.v2.slot.GMAdSlotBanner; |
| | | //import com.weikou.beibeivideo.util.ad.GMAdManagerHolder; |
| | | |
| | | import java.util.List; |
| | | |
| | | public class GMAdBannerManager { |
| | | // private static final String TAG = GMAdBannerManager.class.getSimpleName(); |
| | | // |
| | | // private GMBannerAd mBannerViewAd; |
| | | // private Activity mActivity; |
| | | // private GMBannerAdLoadCallback mBannerAdLoadCallback; |
| | | // private GMBannerAdListener mAdBannerListener; |
| | | // private String mAdUnitId; //广告位 |
| | | // |
| | | // public GMAdBannerManager(Activity activity, GMBannerAdLoadCallback bannerAdLoadCallback, GMBannerAdListener adBannerListener) { |
| | | // //如果接入了Unity sdk 建议提前初始化 |
| | | // GMAdManagerHolder.initUnitySdkBanner(activity); |
| | | // mActivity = activity; |
| | | // mBannerAdLoadCallback = bannerAdLoadCallback; |
| | | // mAdBannerListener = adBannerListener; |
| | | // } |
| | | // |
| | | // public GMBannerAd getBannerAd() { |
| | | // return mBannerViewAd; |
| | | // } |
| | | // |
| | | // public void loadAdWithCallback(final String adUnitId) { |
| | | // this.mAdUnitId = adUnitId; |
| | | // |
| | | // /** |
| | | // * 判断当前是否存在config 配置 ,如果存在直接加载广告 ,如果不存在则注册config加载回调 |
| | | // */ |
| | | // if (GMMediationAdSdk.configLoadSuccess()) { |
| | | // Log.e(TAG, "load ad 当前config配置存在,直接加载广告"); |
| | | // loadBannerAd(adUnitId); |
| | | // } else { |
| | | // Log.e(TAG, "load ad 当前config配置不存在,正在请求config配置...."); |
| | | // GMMediationAdSdk.registerConfigCallback(mSettingConfigCallback); //不用使用内部类,否则在ondestory中无法移除该回调 |
| | | // } |
| | | // } |
| | | // |
| | | // private void loadBannerAd(String unitId) { |
| | | // /** |
| | | // * 注:每次加载banner的时候需要新建一个GMBannerAd,一个广告对象只能load一次,banner广告对象getBannerView只能一次,第二次调用会返回空 |
| | | // */ |
| | | // if (mBannerViewAd != null) { |
| | | // mBannerViewAd.destroy(); |
| | | // } |
| | | // mBannerViewAd = new GMBannerAd(mActivity, unitId); |
| | | // |
| | | // //设置广告事件监听 |
| | | // mBannerViewAd.setAdBannerListener(mAdBannerListener); |
| | | // |
| | | // //设置广告配置 |
| | | // GMAdSlotBanner slotBanner = new GMAdSlotBanner.Builder() |
| | | // .setBannerSize(GMAdSize.BANNER_CUSTOME) |
| | | // .setImageAdSize(320, 150)// GMAdSize.BANNER_CUSTOME可以调用setImageAdSize设置大小 |
| | | //// .setRefreshTime(30) // 从v3100版本开始,不支持sdk端设置banner轮播时间,只能从GroMore平台进行配置。sdk端设置无效。 |
| | | // .setAllowShowCloseBtn(true)//如果广告本身允许展示关闭按钮,这里设置为true就是展示。注:目前只有mintegral支持。 |
| | | // .setBidNotify(true)//开启bidding比价结果通知,默认值为false |
| | | // .build(); |
| | | // //请求广告,对请求回调的广告作渲染处理 |
| | | // mBannerViewAd.loadAd(slotBanner, mBannerAdLoadCallback); |
| | | // } |
| | | // |
| | | // public void destroy() { |
| | | // if (mBannerViewAd != null) { |
| | | // mBannerViewAd.destroy(); |
| | | // } |
| | | // mActivity = null; |
| | | // mBannerViewAd = null; |
| | | // mBannerAdLoadCallback = null; |
| | | // mAdBannerListener = null; |
| | | // GMMediationAdSdk.unregisterConfigCallback(mSettingConfigCallback); //注销config回调 |
| | | // } |
| | | // |
| | | // |
| | | // /** |
| | | // * config回调 |
| | | // */ |
| | | // private GMSettingConfigCallback mSettingConfigCallback = new GMSettingConfigCallback() { |
| | | // @Override |
| | | // public void configLoad() { |
| | | // Log.e(TAG, "load ad 在config 回调中加载广告"); |
| | | // loadAdWithCallback(mAdUnitId); |
| | | // } |
| | | // }; |
| | | // |
| | | // |
| | | ////-----------以下方法非必须 ,按需使用-------------- |
| | | // |
| | | // //展示已经加载广告的信息 |
| | | // public void printLoadAdInfo() { |
| | | // if (mBannerViewAd == null) { |
| | | // return; |
| | | // } |
| | | // /** |
| | | // * 获取已经加载的clientBidding ,多阶底价广告的相关信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmAdEcpmInfos = mBannerViewAd.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()); |
| | | // } |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取实时填充/缓存池中价格最优的代码位信息即相关价格信息,每次只有一个信息 |
| | | // */ |
| | | // GMAdEcpmInfo gmAdEcpmInfo = mBannerViewAd.getBestEcpm(); |
| | | // if (gmAdEcpmInfo != null) { |
| | | // Log.e(TAG, "***实时填充/缓存池中价格最优的代码位信息*** AdNetworkPlatformId" + gmAdEcpmInfo.getAdNetworkPlatformId() |
| | | // + " AdNetworkRitId:" + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " ReqBiddingType:" + gmAdEcpmInfo.getReqBiddingType() |
| | | // + " PreEcpm:" + gmAdEcpmInfo.getPreEcpm() |
| | | // + " LevelTag:" + gmAdEcpmInfo.getLevelTag() |
| | | // + " ErrorMsg:" + gmAdEcpmInfo.getErrorMsg() |
| | | // + " request_id:" + gmAdEcpmInfo.getRequestId() |
| | | // + " SdkName:" + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomSdkName:" + gmAdEcpmInfo.getCustomAdNetworkPlatformName()); |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取获取当前缓存池的全部信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmCacheInfos = mBannerViewAd.getCacheList(); |
| | | // if (gmCacheInfos != null) { |
| | | // for (GMAdEcpmInfo info : gmCacheInfos) { |
| | | // 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 (mBannerViewAd == null) { |
| | | // return; |
| | | // } |
| | | // |
| | | // // 获取本次waterfall加载中,加载失败的adn错误信息。 |
| | | // Log.d(TAG, "InterstitialFull ad loadinfos: " + mBannerViewAd.getAdLoadInfoList()); |
| | | // } |
| | | // |
| | | // //打印已经展示的广告信息 |
| | | // public void printShowAdInfo() { |
| | | // if (mBannerViewAd == null) { |
| | | // return; |
| | | // } |
| | | // GMAdEcpmInfo gmAdEcpmInfo = mBannerViewAd.getShowEcpm(); |
| | | // if (gmAdEcpmInfo == null) { |
| | | // return; |
| | | // } |
| | | // Logger.e(TAG, "展示的广告信息 :adNetworkPlatformName: " + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomAdNetworkPlatformName: " + gmAdEcpmInfo.getCustomAdNetworkPlatformName() |
| | | // + " adNetworkRitId: " + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " preEcpm: " + gmAdEcpmInfo.getPreEcpm()); |
| | | // } |
| | | } |
New file |
| | |
| | | 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()); |
| | | // } |
| | | |
| | | } |
New file |
| | |
| | | package com.weikou.beibeivideo.util.ad.manager.gm; |
| | | |
| | | import android.app.Activity; |
| | | import android.util.Log; |
| | | |
| | | //import com.bytedance.msdk.adapter.util.Logger; |
| | | //import com.bytedance.msdk.api.GMAdEcpmInfo; |
| | | //import com.bytedance.msdk.api.v2.GMAdConstant; |
| | | //import com.bytedance.msdk.api.v2.GMMediationAdSdk; |
| | | //import com.bytedance.msdk.api.v2.GMSettingConfigCallback; |
| | | //import com.bytedance.msdk.api.v2.ad.fullvideo.GMFullVideoAd; |
| | | //import com.bytedance.msdk.api.v2.ad.fullvideo.GMFullVideoAdLoadCallback; |
| | | //import com.bytedance.msdk.api.v2.slot.GMAdOptionUtil; |
| | | //import com.bytedance.msdk.api.v2.slot.GMAdSlotFullVideo; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public class GMAdFullVideoManager { |
| | | // private static final String TAG = GMAdFullVideoManager.class.getSimpleName(); |
| | | // |
| | | // private GMFullVideoAd mFullVideoAd; |
| | | // private Activity mActivity; |
| | | // private GMFullVideoAdLoadCallback mGMFullVideoAdLoadCallback; |
| | | // private int mOrientation; //方向 |
| | | // private String mAdUnitId; //广告位 |
| | | // |
| | | // public GMAdFullVideoManager(Activity activity, GMFullVideoAdLoadCallback fullVideoAdLoadCallback) { |
| | | // mActivity = activity; |
| | | // mGMFullVideoAdLoadCallback = fullVideoAdLoadCallback; |
| | | // } |
| | | // |
| | | // public GMFullVideoAd getFullVideoAd() { |
| | | // return mFullVideoAd; |
| | | // } |
| | | // |
| | | // public void laodAdWithCallback(final String adUnitId, final int orientation) { |
| | | // this.mOrientation = orientation; |
| | | // this.mAdUnitId = adUnitId; |
| | | // |
| | | // /** |
| | | // * 判断当前是否存在config 配置 ,如果存在直接加载广告 ,如果不存在则注册config加载回调 |
| | | // */ |
| | | // if (GMMediationAdSdk.configLoadSuccess()) { |
| | | // Log.e(TAG, "load ad 当前config配置存在,直接加载广告"); |
| | | // loadAd(adUnitId, orientation); |
| | | // } else { |
| | | // Log.e(TAG, "load ad 当前config配置不存在,正在请求config配置...."); |
| | | // GMMediationAdSdk.registerConfigCallback(mSettingConfigCallback); //不用使用内部类,否则在ondestory中无法移除该回调 |
| | | // } |
| | | // } |
| | | // |
| | | // private void loadAd(String unitId, int orientation) { |
| | | // /** |
| | | // * 注:每次加载全屏视频广告的时候需要新建一个GMFullVideoAd,否则可能会出现广告填充问题 |
| | | // */ |
| | | // mFullVideoAd = new GMFullVideoAd(mActivity, unitId); |
| | | // |
| | | // Map<String, String> customData = new HashMap<>(); |
| | | // customData.put(GMAdConstant.CUSTOM_DATA_KEY_GDT, "gdt custom data");//目前仅支持gdt |
| | | // // 其他需要透传给adn的数据。 |
| | | // |
| | | // GMAdSlotFullVideo adSlotFullVideo = new GMAdSlotFullVideo.Builder() |
| | | // .setGMAdSlotGDTOption(GMAdOptionUtil.getGMAdSlotGDTOption().build()) |
| | | // .setGMAdSlotBaiduOption(GMAdOptionUtil.getGMAdSlotBaiduOption().build()) |
| | | // .setUserID("user123")//用户id,必传参数 |
| | | // .setOrientation(orientation)//必填参数,期望视频的播放方向:TTAdConstant.HORIZONTAL 或 TTAdConstant.VERTICAL; |
| | | // .setRewardName("金币") //奖励的名称 |
| | | // .setRewardAmount(3) //奖励的数量 |
| | | // .setCustomData(customData) //服务端验证 |
| | | // .setBidNotify(true)//开启bidding比价结果通知,默认值为false |
| | | // .build(); |
| | | // mFullVideoAd.loadAd(adSlotFullVideo, mGMFullVideoAdLoadCallback); |
| | | // } |
| | | // |
| | | // public void destroy() { |
| | | // if (mFullVideoAd != null) { |
| | | // mFullVideoAd.destroy(); |
| | | // } |
| | | // mActivity = null; |
| | | // mGMFullVideoAdLoadCallback = null; |
| | | // GMMediationAdSdk.unregisterConfigCallback(mSettingConfigCallback); //注销config回调 |
| | | // } |
| | | // |
| | | // /** |
| | | // * config回调 |
| | | // */ |
| | | // private GMSettingConfigCallback mSettingConfigCallback = new GMSettingConfigCallback() { |
| | | // @Override |
| | | // public void configLoad() { |
| | | // Log.e(TAG, "load ad 在config 回调中加载广告"); |
| | | // loadAd(mAdUnitId, mOrientation); |
| | | // } |
| | | // }; |
| | | // |
| | | // |
| | | // //-----------以下方法非必须 ,按需使用-------------- |
| | | // |
| | | // //打印已经加载广告的信息 |
| | | // public void printLoadAdInfo() { |
| | | // if (mFullVideoAd == null) { |
| | | // return; |
| | | // } |
| | | // /** |
| | | // * 获取已经加载的clientBidding ,多阶底价广告的相关信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmAdEcpmInfos = mFullVideoAd.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()); |
| | | // } |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取实时填充/缓存池中价格最优的代码位信息即相关价格信息,每次只有一个信息 |
| | | // */ |
| | | // GMAdEcpmInfo gmAdEcpmInfo = mFullVideoAd.getBestEcpm(); |
| | | // if (gmAdEcpmInfo != null) { |
| | | // Log.e(TAG, "***实时填充/缓存池中价格最优的代码位信息*** AdNetworkPlatformId" + gmAdEcpmInfo.getAdNetworkPlatformId() |
| | | // + " AdNetworkRitId:" + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " ReqBiddingType:" + gmAdEcpmInfo.getReqBiddingType() |
| | | // + " PreEcpm:" + gmAdEcpmInfo.getPreEcpm() |
| | | // + " LevelTag:" + gmAdEcpmInfo.getLevelTag() |
| | | // + " ErrorMsg:" + gmAdEcpmInfo.getErrorMsg() |
| | | // + " request_id:" + gmAdEcpmInfo.getRequestId() |
| | | // + " SdkName:" + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomSdkName:" + gmAdEcpmInfo.getCustomAdNetworkPlatformName()); |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取获取当前缓存池的全部信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmCacheInfos = mFullVideoAd.getCacheList(); |
| | | // if (gmCacheInfos != null) { |
| | | // for (GMAdEcpmInfo info : gmCacheInfos) { |
| | | // 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 (mFullVideoAd == null) { |
| | | // return; |
| | | // } |
| | | // |
| | | // // 获取本次waterfall加载中,加载失败的adn错误信息。 |
| | | // Log.d(TAG, "reward ad loadinfos: " + mFullVideoAd.getAdLoadInfoList()); |
| | | // } |
| | | // |
| | | // //打印已经展示的广告信息 |
| | | // public void printSHowAdInfo() { |
| | | // if (mFullVideoAd == null) { |
| | | // return; |
| | | // } |
| | | // GMAdEcpmInfo gmAdEcpmInfo = mFullVideoAd.getShowEcpm(); |
| | | // if (gmAdEcpmInfo == null) { |
| | | // return; |
| | | // } |
| | | // Logger.e(TAG, "展示的广告信息 :adNetworkPlatformName: " + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomAdNetworkPlatformName: " + gmAdEcpmInfo.getCustomAdNetworkPlatformName() |
| | | // + " adNetworkRitId: " + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " preEcpm: " + gmAdEcpmInfo.getPreEcpm()); |
| | | // } |
| | | |
| | | } |
New file |
| | |
| | | package com.weikou.beibeivideo.util.ad.manager.gm; |
| | | |
| | | import android.app.Activity; |
| | | import android.util.Log; |
| | | |
| | | //import com.bytedance.msdk.adapter.util.Logger; |
| | | //import com.bytedance.msdk.api.GMAdEcpmInfo; |
| | | //import com.bytedance.msdk.api.v2.GMAdConstant; |
| | | //import com.bytedance.msdk.api.v2.GMMediationAdSdk; |
| | | //import com.bytedance.msdk.api.v2.GMSettingConfigCallback; |
| | | //import com.bytedance.msdk.api.v2.ad.interstitialFull.GMInterstitialFullAd; |
| | | //import com.bytedance.msdk.api.v2.ad.interstitialFull.GMInterstitialFullAdLoadCallback; |
| | | //import com.bytedance.msdk.api.v2.slot.GMAdOptionUtil; |
| | | //import com.bytedance.msdk.api.v2.slot.GMAdSlotInterstitialFull; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public class GMAdInterstitialFullManager { |
| | | // private static final String TAG = GMAdInterstitialFullManager.class.getSimpleName(); |
| | | // |
| | | // private GMInterstitialFullAd mGMInterstitialFullAd; |
| | | // private Activity mActivity; |
| | | // private GMInterstitialFullAdLoadCallback mGMInterstitialFullAdLoadCallback; |
| | | // private String mAdUnitId; //广告位 |
| | | // |
| | | // public GMAdInterstitialFullManager(Activity activity, GMInterstitialFullAdLoadCallback gmInterstitialFullAdLoadCallback) { |
| | | // mActivity = activity; |
| | | // mGMInterstitialFullAdLoadCallback = gmInterstitialFullAdLoadCallback; |
| | | // } |
| | | // |
| | | // public GMInterstitialFullAd getGMInterstitialFullAd() { |
| | | // return mGMInterstitialFullAd; |
| | | // } |
| | | // |
| | | // |
| | | // public void loadAdWithCallback(final String adUnitId) { |
| | | // this.mAdUnitId = adUnitId; |
| | | // |
| | | // /** |
| | | // * 判断当前是否存在config 配置 ,如果存在直接加载广告 ,如果不存在则注册config加载回调 |
| | | // */ |
| | | // if (GMMediationAdSdk.configLoadSuccess()) { |
| | | // Log.e(TAG, "load ad 当前config配置存在,直接加载广告"); |
| | | // loadAd(adUnitId); |
| | | // } else { |
| | | // Log.e(TAG, "load ad 当前config配置不存在,正在请求config配置...."); |
| | | // GMMediationAdSdk.registerConfigCallback(mSettingConfigCallback); //不用使用内部类,否则在ondestory中无法移除该回调 |
| | | // } |
| | | // } |
| | | // |
| | | // private void loadAd(String unitId) { |
| | | // /** |
| | | // * 注:每次加载插全屏广告的时候需要新建一个GMInterstitialFullAd,否则可能会出现广告填充问题 |
| | | // * ( 例如:mInterstitialFullAd = new GMInterstitialFullAd(this, adUnitId);) |
| | | // */ |
| | | // //Context 必须传activity |
| | | // mGMInterstitialFullAd = new GMInterstitialFullAd(mActivity, unitId); |
| | | // |
| | | // Map<String, String> customData = new HashMap<>(); |
| | | // customData.put(GMAdConstant.CUSTOM_DATA_KEY_GDT, "gdt custom data");//目前仅支持gdt |
| | | // // 其他需要透传给adn的数据。 |
| | | // |
| | | // GMAdSlotInterstitialFull adSlotInterstitialFull = new GMAdSlotInterstitialFull.Builder() |
| | | // .setGMAdSlotBaiduOption(GMAdOptionUtil.getGMAdSlotBaiduOption().build()) |
| | | // .setGMAdSlotGDTOption(GMAdOptionUtil.getGMAdSlotGDTOption().build()) |
| | | // .setImageAdSize(600, 600) //设置宽高 (插全屏类型下_插屏广告使用) |
| | | // .setVolume(0.5f) //admob 声音配置,与setMuted配合使用 |
| | | // .setUserID("user123")//用户id,必传参数 (插全屏类型下_全屏广告使用) |
| | | // .setCustomData(customData) |
| | | // .setRewardName("金币") //奖励的名称 |
| | | // .setRewardAmount(3) //奖励的数量 |
| | | // .setOrientation(GMAdConstant.HORIZONTAL)//必填参数,期望视频的播放方向:TTAdConstant.HORIZONTAL 或 TTAdConstant.VERTICAL; (插全屏类型下_全屏广告使用) |
| | | // .setBidNotify(true)//开启bidding比价结果通知,默认值为false |
| | | // .build(); |
| | | // |
| | | // //请求广告,调用插屏广告异步请求接口 |
| | | // mGMInterstitialFullAd.loadAd(adSlotInterstitialFull, mGMInterstitialFullAdLoadCallback); |
| | | // } |
| | | // |
| | | // public void destroy() { |
| | | // if (mGMInterstitialFullAd != null) { |
| | | // mGMInterstitialFullAd.destroy(); |
| | | // } |
| | | // mActivity = null; |
| | | // mGMInterstitialFullAdLoadCallback = null; |
| | | // GMMediationAdSdk.unregisterConfigCallback(mSettingConfigCallback); //注销config回调 |
| | | // } |
| | | // |
| | | // /** |
| | | // * config回调 |
| | | // */ |
| | | // private GMSettingConfigCallback mSettingConfigCallback = new GMSettingConfigCallback() { |
| | | // @Override |
| | | // public void configLoad() { |
| | | // Log.e(TAG, "load ad 在config 回调中加载广告"); |
| | | // loadAd(mAdUnitId); |
| | | // } |
| | | // }; |
| | | // |
| | | // |
| | | // //-----------以下方法非必须 ,按需使用-------------- |
| | | // |
| | | // //展示已经加载广告的信息 |
| | | // public void printLoadAdInfo() { |
| | | // if (mGMInterstitialFullAd == null) { |
| | | // return; |
| | | // } |
| | | // /** |
| | | // * 获取已经加载的clientBidding ,多阶底价广告的相关信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmAdEcpmInfos = mGMInterstitialFullAd.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()); |
| | | // } |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取实时填充/缓存池中价格最优的代码位信息即相关价格信息,每次只有一个信息 |
| | | // */ |
| | | // GMAdEcpmInfo gmAdEcpmInfo = mGMInterstitialFullAd.getBestEcpm(); |
| | | // if (gmAdEcpmInfo != null) { |
| | | // Log.e(TAG, "***实时填充/缓存池中价格最优的代码位信息*** AdNetworkPlatformId" + gmAdEcpmInfo.getAdNetworkPlatformId() |
| | | // + " AdNetworkRitId:" + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " ReqBiddingType:" + gmAdEcpmInfo.getReqBiddingType() |
| | | // + " PreEcpm:" + gmAdEcpmInfo.getPreEcpm() |
| | | // + " LevelTag:" + gmAdEcpmInfo.getLevelTag() |
| | | // + " ErrorMsg:" + gmAdEcpmInfo.getErrorMsg() |
| | | // + " request_id:" + gmAdEcpmInfo.getRequestId() |
| | | // + " SdkName:" + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomSdkName:" + gmAdEcpmInfo.getCustomAdNetworkPlatformName()); |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取获取当前缓存池的全部信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmCacheInfos = mGMInterstitialFullAd.getCacheList(); |
| | | // if (gmCacheInfos != null) { |
| | | // for (GMAdEcpmInfo info : gmCacheInfos) { |
| | | // 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 (mGMInterstitialFullAd == null) { |
| | | // return; |
| | | // } |
| | | // |
| | | // // 获取本次waterfall加载中,加载失败的adn错误信息。 |
| | | // Log.d(TAG, "InterstitialFull ad loadinfos: " + mGMInterstitialFullAd.getAdLoadInfoList()); |
| | | // } |
| | | // |
| | | // //打印已经展示的广告信息 |
| | | // public void printSHowAdInfo() { |
| | | // if (mGMInterstitialFullAd == null) { |
| | | // return; |
| | | // } |
| | | // GMAdEcpmInfo gmAdEcpmInfo = mGMInterstitialFullAd.getShowEcpm(); |
| | | // if (gmAdEcpmInfo == null) { |
| | | // return; |
| | | // } |
| | | // Logger.e(TAG, "展示的广告信息 :adNetworkPlatformName: " + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomAdNetworkPlatformName: " + gmAdEcpmInfo.getCustomAdNetworkPlatformName() |
| | | // + " adNetworkRitId: " + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " preEcpm: " + gmAdEcpmInfo.getPreEcpm()); |
| | | // } |
| | | |
| | | } |
New file |
| | |
| | | package com.weikou.beibeivideo.util.ad.manager.gm; |
| | | |
| | | import android.app.Activity; |
| | | import android.util.Log; |
| | | |
| | | //import com.bytedance.msdk.adapter.util.Logger; |
| | | //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.interstitial.GMInterstitialAd; |
| | | //import com.bytedance.msdk.api.v2.ad.interstitial.GMInterstitialAdLoadCallback; |
| | | //import com.bytedance.msdk.api.v2.slot.GMAdOptionUtil; |
| | | //import com.bytedance.msdk.api.v2.slot.GMAdSlotInterstitial; |
| | | |
| | | import java.util.List; |
| | | |
| | | public class GMAdInterstitialManager { |
| | | // private static final String TAG = GMAdInterstitialManager.class.getSimpleName(); |
| | | // |
| | | // private Activity mActivity; |
| | | // private GMInterstitialAd mInterstitialAd; |
| | | // private GMInterstitialAdLoadCallback mGMInterstitialAdLoadCallback; |
| | | // |
| | | // private String mAdUnitId; //广告位 |
| | | // |
| | | // public GMAdInterstitialManager(Activity activity, GMInterstitialAdLoadCallback interstitialAdLoadCallback) { |
| | | // mActivity = activity; |
| | | // mGMInterstitialAdLoadCallback = interstitialAdLoadCallback; |
| | | // } |
| | | // |
| | | // public GMInterstitialAd getInterstitialAd() { |
| | | // return mInterstitialAd; |
| | | // } |
| | | // |
| | | // |
| | | // public void loadAdWithCallback(final String adUnitId) { |
| | | // this.mAdUnitId = adUnitId; |
| | | // |
| | | // /** |
| | | // * 判断当前是否存在config 配置 ,如果存在直接加载广告 ,如果不存在则注册config加载回调 |
| | | // */ |
| | | // if (GMMediationAdSdk.configLoadSuccess()) { |
| | | // Log.e(TAG, "load ad 当前config配置存在,直接加载广告"); |
| | | // loadInteractionAd(adUnitId); |
| | | // } else { |
| | | // Log.e(TAG, "load ad 当前config配置不存在,正在请求config配置...."); |
| | | // GMMediationAdSdk.registerConfigCallback(mSettingConfigCallback); //不用使用内部类,否则在ondestory中无法移除该回调 |
| | | // } |
| | | // } |
| | | // |
| | | // /** |
| | | // * 加载插屏广告 |
| | | // */ |
| | | // private void loadInteractionAd(String unitId) { |
| | | // //Context 必须传activity |
| | | // /** |
| | | // * 注:每次加载插屏广告的时候需要新建一个GMInterstitialAd,否则可能会出现广告填充问题 |
| | | // * ( 例如:mInterstitialAd = new GMInterstitialAd(this, adUnitId);) |
| | | // */ |
| | | // mInterstitialAd = new GMInterstitialAd(mActivity, unitId); |
| | | // |
| | | // GMAdSlotInterstitial adSlotInterstitial = new GMAdSlotInterstitial.Builder() |
| | | // .setGMAdSlotBaiduOption(GMAdOptionUtil.getGMAdSlotBaiduOption().build()) |
| | | // .setGMAdSlotGDTOption(GMAdOptionUtil.getGMAdSlotGDTOption().build()) |
| | | // .setImageAdSize(600, 600) |
| | | // .setVolume(0.5f) |
| | | // .setBidNotify(true)//开启bidding比价结果通知,默认值为false |
| | | // .build(); |
| | | // |
| | | // //请求广告,调用插屏广告异步请求接口 |
| | | // mInterstitialAd.loadAd(adSlotInterstitial, mGMInterstitialAdLoadCallback); |
| | | // } |
| | | // |
| | | // public void destroy() { |
| | | // if (mInterstitialAd != null) { |
| | | // mInterstitialAd.destroy(); |
| | | // } |
| | | // mActivity = null; |
| | | // mGMInterstitialAdLoadCallback = null; |
| | | // GMMediationAdSdk.unregisterConfigCallback(mSettingConfigCallback); //注销config回调 |
| | | // } |
| | | // |
| | | // |
| | | // /** |
| | | // * config回调 |
| | | // */ |
| | | // private GMSettingConfigCallback mSettingConfigCallback = new GMSettingConfigCallback() { |
| | | // @Override |
| | | // public void configLoad() { |
| | | // Log.e(TAG, "load ad 在config 回调中加载广告"); |
| | | // loadInteractionAd(mAdUnitId); |
| | | // } |
| | | // }; |
| | | // |
| | | // |
| | | // //-----------以下方法非必须 ,按需使用-------------- |
| | | // |
| | | // //打印已经加载广告的信息 |
| | | // public void printLoadAdInfo() { |
| | | // if (mInterstitialAd == null) { |
| | | // return; |
| | | // } |
| | | // /** |
| | | // * 获取已经加载的clientBidding ,多阶底价广告的相关信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmAdEcpmInfos = mInterstitialAd.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()); |
| | | // } |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取实时填充/缓存池中价格最优的代码位信息即相关价格信息,每次只有一个信息 |
| | | // */ |
| | | // GMAdEcpmInfo gmAdEcpmInfo = mInterstitialAd.getBestEcpm(); |
| | | // if (gmAdEcpmInfo != null) { |
| | | // Log.e(TAG, "***实时填充/缓存池中价格最优的代码位信息*** AdNetworkPlatformId" + gmAdEcpmInfo.getAdNetworkPlatformId() |
| | | // + " AdNetworkRitId:" + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " ReqBiddingType:" + gmAdEcpmInfo.getReqBiddingType() |
| | | // + " PreEcpm:" + gmAdEcpmInfo.getPreEcpm() |
| | | // + " LevelTag:" + gmAdEcpmInfo.getLevelTag() |
| | | // + " ErrorMsg:" + gmAdEcpmInfo.getErrorMsg() |
| | | // + " request_id:" + gmAdEcpmInfo.getRequestId() |
| | | // + " SdkName:" + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomSdkName:" + gmAdEcpmInfo.getCustomAdNetworkPlatformName()); |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取获取当前缓存池的全部信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmCacheInfos = mInterstitialAd.getCacheList(); |
| | | // if (gmCacheInfos != null) { |
| | | // for (GMAdEcpmInfo info : gmCacheInfos) { |
| | | // 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 (mInterstitialAd == null) { |
| | | // return; |
| | | // } |
| | | // |
| | | // // 获取本次waterfall加载中,加载失败的adn错误信息。 |
| | | // Log.d(TAG, "reward ad loadinfos: " + mInterstitialAd.getAdLoadInfoList()); |
| | | // } |
| | | // |
| | | // //打印已经展示的广告信息 |
| | | // public void printShowAdInfo() { |
| | | // if (mInterstitialAd == null) { |
| | | // return; |
| | | // } |
| | | // GMAdEcpmInfo gmAdEcpmInfo = mInterstitialAd.getShowEcpm(); |
| | | // if (gmAdEcpmInfo == null) { |
| | | // return; |
| | | // } |
| | | // Logger.e(TAG, "展示的广告信息 :adNetworkPlatformName: " + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomAdNetworkPlatformName: " + gmAdEcpmInfo.getCustomAdNetworkPlatformName() |
| | | // + " adNetworkRitId: " + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " preEcpm: " + gmAdEcpmInfo.getPreEcpm()); |
| | | // } |
| | | } |
New file |
| | |
| | | package com.weikou.beibeivideo.util.ad.manager.gm; |
| | | |
| | | import android.app.Activity; |
| | | import android.util.Log; |
| | | |
| | | //import com.bytedance.msdk.adapter.util.Logger; |
| | | //import com.bytedance.msdk.api.GMAdEcpmInfo; |
| | | //import com.bytedance.msdk.api.v2.GMAdConstant; |
| | | //import com.bytedance.msdk.api.v2.GMMediationAdSdk; |
| | | //import com.bytedance.msdk.api.v2.GMSettingConfigCallback; |
| | | //import com.bytedance.msdk.api.v2.ad.reward.GMRewardAd; |
| | | //import com.bytedance.msdk.api.v2.ad.reward.GMRewardedAdLoadCallback; |
| | | //import com.bytedance.msdk.api.v2.slot.GMAdOptionUtil; |
| | | //import com.bytedance.msdk.api.v2.slot.GMAdSlotRewardVideo; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public class GMAdRewardManager { |
| | | // private static final String TAG = GMAdRewardManager.class.getSimpleName(); |
| | | // |
| | | // private GMRewardAd mGMRewardAd; |
| | | // private Activity mActivity; |
| | | // private GMRewardedAdLoadCallback mGMRewardedAdLoadCallback; |
| | | // private int mOrientation; //方向 |
| | | // private String mAdUnitId; //广告位 |
| | | // |
| | | // public GMAdRewardManager(Activity activity, GMRewardedAdLoadCallback gmRewardedAdLoadCallback) { |
| | | // mActivity = activity; |
| | | // mGMRewardedAdLoadCallback = gmRewardedAdLoadCallback; |
| | | // } |
| | | // |
| | | // public GMRewardAd getGMRewardAd() { |
| | | // return mGMRewardAd; |
| | | // } |
| | | // |
| | | // |
| | | // public void laodAdWithCallback(final String adUnitId, final int orientation) { |
| | | // this.mOrientation = orientation; |
| | | // this.mAdUnitId = adUnitId; |
| | | // |
| | | // /** |
| | | // * 判断当前是否存在config 配置 ,如果存在直接加载广告 ,如果不存在则注册config加载回调 |
| | | // */ |
| | | // if (GMMediationAdSdk.configLoadSuccess()) { |
| | | // Log.e(TAG, "load ad 当前config配置存在,直接加载广告"); |
| | | // loadAd(adUnitId, orientation); |
| | | // } else { |
| | | // Log.e(TAG, "load ad 当前config配置不存在,正在请求config配置...."); |
| | | // GMMediationAdSdk.registerConfigCallback(mSettingConfigCallback); //不用使用内部类,否则在ondestory中无法移除该回调 |
| | | // } |
| | | // } |
| | | // |
| | | // private void loadAd(String unitId, int orientation) { |
| | | // /** |
| | | // * 注:每次加载激励视频广告的时候需要新建一个TTRewardAd,否则可能会出现广告填充问题 |
| | | // * ( 例如:mttRewardAd = new GMRewardAd(this, adUnitId);) |
| | | // */ |
| | | // mGMRewardAd = new GMRewardAd(mActivity, unitId); |
| | | // |
| | | // // 未开启gromore服务端验证 |
| | | // Map<String, String> customData = new HashMap<>(); |
| | | // customData.put(GMAdConstant.CUSTOM_DATA_KEY_PANGLE, "pangle media_extra"); |
| | | // customData.put(GMAdConstant.CUSTOM_DATA_KEY_GDT, "gdt custom data"); |
| | | // customData.put(GMAdConstant.CUSTOM_DATA_KEY_KS, "ks custom data"); |
| | | // customData.put(GMAdConstant.CUSTOM_DATA_KEY_SIGMOB, "sigmob custom data"); |
| | | // customData.put(GMAdConstant.CUSTOM_DATA_KEY_MINTEGRAL, "mintegral custom data"); |
| | | // // 如果开启了gromre服务端激励验证,可以传以下信息,跟adn无关。 |
| | | // customData.put(GMAdConstant.CUSTOM_DATA_KEY_GROMORE_EXTRA, "gromore serverside verify extra data"); // 会透传给媒体的服务器 |
| | | // // 其他需要透传给adn的数据。 |
| | | // |
| | | // GMAdSlotRewardVideo adSlotRewardVideo = new GMAdSlotRewardVideo.Builder() |
| | | // .setMuted(true)//对所有SDK的激励广告生效,除需要在平台配置的SDK,如穿山甲SDK |
| | | // .setVolume(0f)//配合Admob的声音大小设置[0-1] |
| | | // .setGMAdSlotGDTOption(GMAdOptionUtil.getGMAdSlotGDTOption().build()) |
| | | // .setGMAdSlotBaiduOption(GMAdOptionUtil.getGMAdSlotBaiduOption().build()) |
| | | // .setCustomData(customData) |
| | | // .setRewardName("金币") //奖励的名称 |
| | | // .setRewardAmount(3) //奖励的数量 |
| | | // .setUserID("user123")//用户id,必传参数 |
| | | // .setUseSurfaceView(false) |
| | | // .setOrientation(orientation)//必填参数,期望视频的播放方向:GMAdConstant.HORIZONTAL 或 GMAdConstant.VERTICAL |
| | | // .setBidNotify(true)//开启bidding比价结果通知,默认值为false |
| | | // .build(); |
| | | // mGMRewardAd.loadAd(adSlotRewardVideo, mGMRewardedAdLoadCallback); |
| | | // } |
| | | // |
| | | // public void destroy() { |
| | | // if (mGMRewardAd != null) { |
| | | // mGMRewardAd.destroy(); |
| | | // } |
| | | // mActivity = null; |
| | | // mGMRewardedAdLoadCallback = null; |
| | | // GMMediationAdSdk.unregisterConfigCallback(mSettingConfigCallback); //注销config回调 |
| | | // } |
| | | // |
| | | // /** |
| | | // * config回调 |
| | | // */ |
| | | // private GMSettingConfigCallback mSettingConfigCallback = new GMSettingConfigCallback() { |
| | | // @Override |
| | | // public void configLoad() { |
| | | // Log.e(TAG, "load ad 在config 回调中加载广告"); |
| | | // loadAd(mAdUnitId, mOrientation); |
| | | // } |
| | | // }; |
| | | // |
| | | // |
| | | // //-----------以下方法非必须 ,按需使用-------------- |
| | | // |
| | | // //打印已经加载广告的信息 |
| | | // public void printLoadAdInfo() { |
| | | // if (mGMRewardAd == null) { |
| | | // return; |
| | | // } |
| | | // /** |
| | | // * 获取已经加载的clientBidding ,多阶底价广告的相关信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmAdEcpmInfos = mGMRewardAd.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()); |
| | | // } |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取实时填充/缓存池中价格最优的代码位信息即相关价格信息,每次只有一个信息 |
| | | // */ |
| | | // GMAdEcpmInfo gmAdEcpmInfo = mGMRewardAd.getBestEcpm(); |
| | | // if (gmAdEcpmInfo != null) { |
| | | // Log.e(TAG, "***实时填充/缓存池中价格最优的代码位信息*** AdNetworkPlatformId" + gmAdEcpmInfo.getAdNetworkPlatformId() |
| | | // + " AdNetworkRitId:" + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " ReqBiddingType:" + gmAdEcpmInfo.getReqBiddingType() |
| | | // + " PreEcpm:" + gmAdEcpmInfo.getPreEcpm() |
| | | // + " LevelTag:" + gmAdEcpmInfo.getLevelTag() |
| | | // + " ErrorMsg:" + gmAdEcpmInfo.getErrorMsg() |
| | | // + " request_id:" + gmAdEcpmInfo.getRequestId() |
| | | // + " SdkName:" + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomSdkName:" + gmAdEcpmInfo.getCustomAdNetworkPlatformName()); |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取获取当前缓存池的全部信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmCacheInfos = mGMRewardAd.getCacheList(); |
| | | // if (gmCacheInfos != null) { |
| | | // for (GMAdEcpmInfo info : gmCacheInfos) { |
| | | // 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 (mGMRewardAd == null) { |
| | | // return; |
| | | // } |
| | | // |
| | | // // 获取本次waterfall加载中,加载失败的adn错误信息。 |
| | | // Log.d(TAG, "reward ad loadinfos: " + mGMRewardAd.getAdLoadInfoList()); |
| | | // } |
| | | // |
| | | // //打印已经展示的广告信息 |
| | | // public void printSHowAdInfo() { |
| | | // if (mGMRewardAd == null) { |
| | | // return; |
| | | // } |
| | | // |
| | | // GMAdEcpmInfo gmAdEcpmInfo = mGMRewardAd.getShowEcpm(); |
| | | // if (gmAdEcpmInfo == null) { |
| | | // return; |
| | | // } |
| | | // Logger.e(TAG, "展示的广告信息 :adNetworkPlatformName: " + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomAdNetworkPlatformName: " + gmAdEcpmInfo.getCustomAdNetworkPlatformName() |
| | | // + " adNetworkRitId: " + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " preEcpm: " + gmAdEcpmInfo.getPreEcpm()); |
| | | // } |
| | | |
| | | } |
New file |
| | |
| | | package com.weikou.beibeivideo.util.ad.manager.gm; |
| | | |
| | | import android.app.Activity; |
| | | import android.util.Log; |
| | | |
| | | //import com.bytedance.msdk.adapter.pangle.PangleNetworkRequestInfo; |
| | | //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.TTNetworkRequestInfo; |
| | | //import com.bytedance.msdk.api.v2.GMAdConstant; |
| | | //import com.bytedance.msdk.api.v2.ad.splash.GMSplashAd; |
| | | //import com.bytedance.msdk.api.v2.ad.splash.GMSplashAdListener; |
| | | //import com.bytedance.msdk.api.v2.ad.splash.GMSplashAdLoadCallback; |
| | | //import com.bytedance.msdk.api.v2.slot.GMAdSlotSplash; |
| | | import com.weikou.beibeivideo.util.ad.CSJConstant; |
| | | |
| | | import java.util.List; |
| | | |
| | | public class GMAdSplashManager { |
| | | // private static final String TAG = "GMAdSplashManager"; |
| | | // |
| | | // private GMSplashAd mSplashAd; |
| | | // private Activity mActivity; |
| | | // //开屏广告加载超时时间,建议大于1000,这里为了冷启动第一次加载到广告并且展示,示例设置了2000ms |
| | | // private static final int AD_TIME_OUT = 4000; |
| | | // //强制使用兜底广告 |
| | | // private boolean mForceLoadBottom = true; |
| | | // private GMSplashAdLoadCallback mGMSplashAdLoadCallback; |
| | | // private GMSplashAdListener mSplashAdListener; |
| | | // |
| | | // public GMAdSplashManager(Activity activity, GMSplashAdLoadCallback splashAdLoadCallback, GMSplashAdListener splashAdListener) { |
| | | // mActivity = activity; |
| | | // mGMSplashAdLoadCallback = splashAdLoadCallback; |
| | | // mSplashAdListener = splashAdListener; |
| | | // } |
| | | // |
| | | // public GMSplashAd getSplashAd() { |
| | | // return mSplashAd; |
| | | // } |
| | | // |
| | | // /** |
| | | // * 加载开屏广告 |
| | | // */ |
| | | // public void loadSplashAd(String unitId) { |
| | | // /** |
| | | // * 注:每次加载开屏广告的时候需要新建一个TTSplashAd,否则可能会出现广告填充问题 |
| | | // * ( 例如:mTTSplashAd = new TTSplashAd(this, mAdUnitId);) |
| | | // */ |
| | | // mSplashAd = new GMSplashAd(mActivity, unitId); |
| | | // mSplashAd.setAdSplashListener(mSplashAdListener); |
| | | // |
| | | // //创建开屏广告请求参数AdSlot,具体参数含义参考文档 |
| | | // GMAdSlotSplash adSlot = new GMAdSlotSplash.Builder() |
| | | // .setImageAdSize(UIUtils.getScreenWidth(mActivity), UIUtils.getScreenHeight(mActivity)) // 单位px |
| | | // .setTimeOut(AD_TIME_OUT)//设置超时 |
| | | // .setSplashButtonType(GMAdConstant.SPLASH_BUTTON_TYPE_FULL_SCREEN) |
| | | // .setDownloadType(GMAdConstant.DOWNLOAD_TYPE_POPUP) |
| | | // .setForceLoadBottom(mForceLoadBottom) //强制加载兜底开屏广告,只能在GroMore提供的demo中使用,其他情况设置无效 |
| | | // .setBidNotify(true)//开启bidding比价结果通知,默认值为false |
| | | // .setSplashShakeButton(true) //开屏摇一摇开关,默认开启,目前只有gdt支持 |
| | | // .build(); |
| | | // |
| | | // //自定义兜底方案 选择使用 |
| | | // //GMNetworkRequestInfo networkRequestInfo = SplashUtils.getGMNetworkRequestInfo(); |
| | | // |
| | | // TTNetworkRequestInfo ttNetworkRequestInfo; |
| | | // ttNetworkRequestInfo = new PangleNetworkRequestInfo("5095354", CSJConstant.SPLASH_AD); |
| | | // //请求广告,调用开屏广告异步请求接口,对请求回调的广告作渲染处理 |
| | | // mSplashAd.loadAd(adSlot, ttNetworkRequestInfo, mGMSplashAdLoadCallback); |
| | | // } |
| | | // |
| | | // |
| | | // /** |
| | | // * 打印其他信息 |
| | | // */ |
| | | // public void printInfo() { |
| | | // if (mSplashAd != null) { |
| | | // /** |
| | | // * 获取已经加载的clientBidding ,多阶底价广告的相关信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmAdEcpmInfos = mSplashAd.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()); |
| | | // } |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取实时填充/缓存池中价格最优的代码位信息即相关价格信息,每次只有一个信息 |
| | | // */ |
| | | // GMAdEcpmInfo gmAdEcpmInfo = mSplashAd.getBestEcpm(); |
| | | // if (gmAdEcpmInfo != null) { |
| | | // Log.e(TAG, "***实时填充/缓存池中价格最优的代码位信息*** AdNetworkPlatformId" + gmAdEcpmInfo.getAdNetworkPlatformId() |
| | | // + " AdNetworkRitId:" + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " ReqBiddingType:" + gmAdEcpmInfo.getReqBiddingType() |
| | | // + " PreEcpm:" + gmAdEcpmInfo.getPreEcpm() |
| | | // + " LevelTag:" + gmAdEcpmInfo.getLevelTag() |
| | | // + " ErrorMsg:" + gmAdEcpmInfo.getErrorMsg() |
| | | // + " request_id:" + gmAdEcpmInfo.getRequestId() |
| | | // + " SdkName:" + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomSdkName:" + gmAdEcpmInfo.getCustomAdNetworkPlatformName()); |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取获取当前缓存池的全部信息 |
| | | // */ |
| | | // List<GMAdEcpmInfo> gmCacheInfos = mSplashAd.getCacheList(); |
| | | // if (gmCacheInfos != null) { |
| | | // for (GMAdEcpmInfo info : gmCacheInfos) { |
| | | // 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()); |
| | | // } |
| | | // } |
| | | // |
| | | // /** |
| | | // * 获取获展示广告的部信息 |
| | | // */ |
| | | // GMAdEcpmInfo showGMAdEcpmInfo = mSplashAd.getShowEcpm(); |
| | | // |
| | | // if (showGMAdEcpmInfo != null) { |
| | | // Logger.e(TAG, "展示的广告信息 :adNetworkPlatformName: " + gmAdEcpmInfo.getAdNetworkPlatformName() |
| | | // + " CustomAdNetworkPlatformName: " + gmAdEcpmInfo.getCustomAdNetworkPlatformName() |
| | | // + " adNetworkRitId: " + gmAdEcpmInfo.getAdNetworkRitId() |
| | | // + " preEcpm: " + gmAdEcpmInfo.getPreEcpm()); |
| | | // } |
| | | // // 获取本次waterfall加载中,加载失败的adn错误信息。 |
| | | // if (mSplashAd != null) |
| | | // Log.d(TAG, "ad load infos: " + mSplashAd.getAdLoadInfoList()); |
| | | // } |
| | | // } |
| | | // |
| | | // public void destroy() { |
| | | // if (mSplashAd != null) { |
| | | // mSplashAd.destroy(); |
| | | // } |
| | | // mActivity = null; |
| | | // mGMSplashAdLoadCallback = null; |
| | | // mSplashAdListener = null; |
| | | // } |
| | | |
| | | } |
| | |
| | | |
| | | private IDPWidgetFactory getFactory() { |
| | | //一定要初始化后才能调用,否则会发生异常问题 |
| | | return DPSdk.factory(); |
| | | IDPWidgetFactory factory=DPSdk.factory(); |
| | | return factory; |
| | | } |
| | | |
| | | } |
| | |
| | | buildscript { |
| | | repositories { |
| | | |
| | | maven { |
| | | url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" |
| | | } |
| | | |
| | | maven { url 'http://developer.huawei.com/repo/' } |
| | | |
| | | //字节跳动SDK |
| | |
| | | |
| | | allprojects { |
| | | repositories { |
| | | |
| | | maven { |
| | | url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" |
| | | } |
| | | |
| | | maven { url 'http://developer.huawei.com/repo/' } |
| | | |
| | |
| | | android:name="com.mozillaonline.providers.downloads.DownloadReceiver" |
| | | android:exported="false" > |
| | | <intent-filter> |
| | | <action android:name="android.intent.action.BOOT_COMPLETED" /> |
| | | <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> |
| | | </intent-filter> |
| | | </receiver> |
| | |
| | | dependencies { |
| | | api fileTree(include: '*.jar', dir: 'libs') |
| | | api 'androidx.legacy:legacy-support-v4:1.0.0' |
| | | api 'com.qq.e.union:union:4.452.1322' |
| | | // api 'com.qq.e.union:union:4.461.1331' |
| | | api 'com.qq.e.union:union:4.480.1350' |
| | | // implementation 'com.qq.e.union:union:4.410.1290' |
| | | // api files("libs/GDTSDK.unionNormal.4.420.1290.aar") |
| | | } |