目前广点通版本:GDTSDK.unionNoPlugin.4.270.1140
穿山甲(网盟)版本:open_ad_sdk.3.2.5.1
后续广告版本会及时更新!
原理简介:本依赖内部集成了‘’广点通‘’ 和‘’网盟‘’ aar ,并对基本所有的广告进行再次封装,使用简单!网盟因为回调很多 不封装可能会吐血!
说明:本工程所有广告都已内测均可用,每种广告类型均支持广告原生回调,也可以采用简单回调(回调的再次封装)、或者省略回调(需要打点的朋友不建议这样)
目前使用sdk已经上线的app:精准天气预报,即墨天气,防骚扰大师,天天清理,一键录屏助手!
使用:非androidx 版本
implementation 'com.zbb.admanager:SupportADManager:1.2'
git链接:https://github.com/zhaobinsir/SupportADManager
androidx版本
implementation 'com.zbb.admanager:ADManager:1.2'
git链接:https://github.com/zhaobinsir/ADManager
由于广告样式较多,不再采用单例实现,尽量一个页面,只保证有一个新闻类型实例存在,资源回收记得调用
初始化: //初始化GDT WM
ADConfig.initAD(getApplicationContext(),"gdtid","wmid");//广点通appid,网盟appid!
ADConfig.openDebug(BuildConfig.DEBUG);//是否开启debug
广点通原生广告:其他广告类型参考app目录下的:MainActivityGDT测试类
NativeController natives = ADManager.create(ADType.NATIVE_AD);
natives.loadAndShowNativeAd(Context,ViewGroup,"广告id");//加载单条,不考虑回调
//加载多条数据,回调自己处理 官方最多支持加载10,这里并没有限制 建议100条以内
natives.loadNativeAdMore(Context, "广告id", 11, new NativeLoadMoreListener<NativeExpressADView>() {
@DebugLog
@Override
public void onAdLoad(List<NativeExpressADView> list) {
Log.e(TAG, "onAdLoad: " + list.size());
ViewGroup.addView(list.get(0));
list.get(0).render();
}
@Override
public void onLoadError(List<NativeExpressADView> list) {
Log.e(TAG, "onNoAd: " + list.size());
}
});
//加载banner2
Banner2Controller banner2 = ADManager.create(ADType.BANNER2_AD);
banner2.preAndShowBanner(Context, ViewGroup, “广告id”);//不关心回调
//开屏,全屏省略.....
网盟(穿山甲)其他广告类型参考app目录下的:Main2ActivityWM
信息流(广点通叫做原生)简单用法
NativeControllerWm nativeWm = ADManager.create(ADType.NATIVE_WMAD);
nativeWm.preAndShowNative(Context,“广告id”,ViewGroup);
banner:简单使用
BannerControllerWM bannerwm=ADManager.create(ADType.BANNER_WMAD);
bannerwm.loadBanner(Context,"广告id",ViewGroup);
开屏:简单使用
SplashControllerWM splashwm=ADManager.create(ADType.SPLASH_WMAD);
splashwm.needFinish=true;//关闭当前界面
splashwm.loadSplash(Context,ViewGroup,"广告id",MainActivity.class);
激励、全屏等....省略
混淆配置:
-keep class com.qq.**{*;}
-keep class com.bytedance.**{*;}
-keep class com.pgl.**{*;}
-keep class com.shenxing.**{*;}
-keep class com.ss.**{*;}
-keep class com.tencent.**{*;}
-keep class c.t.maploc.lite.tsa.**{*;}
-keep class yaq.gdtadv{*;}
-keep class cn.mmachina.JniClient{*;}
-keepattributes Signature
-dontwarn com.androidquery.**
-keep class com.androidquery.** { *;}
-dontwarn tv.danmaku.**
-keep class tv.danmaku.** { *;}
-dontwarn androidx.**
# 如果使用了tbs版本的sdk需要进行以下配置
-keep class com.tencent.smtt.** { *; }
-dontwarn dalvik.**
-dontwarn com.tencent.smtt.**
# 穿山甲
-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep class com.androidquery.callback.** {*;}
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.ss.sys.ces.* {*;}
-dontwarn com.ss.android.socialbase.downloader.**
-dontwarn com.ss.android.crash.log.**
-keep class com.pgl.sys.ces.* {*;}
写在最后:注意AndroidManifest 不需要任何配置