flutterads / flutter_qq_ads Goto Github PK
View Code? Open in Web Editor NEW🔥🔥🔥 Flutter 广告插件 -- 优量汇 、广点通、腾讯广告(支持开屏、插屏、激励视频、Banner、信息流、视频贴片)
Home Page: https://pub.dev/packages/flutter_qq_ads
License: MIT License
🔥🔥🔥 Flutter 广告插件 -- 优量汇 、广点通、腾讯广告(支持开屏、插屏、激励视频、Banner、信息流、视频贴片)
Home Page: https://pub.dev/packages/flutter_qq_ads
License: MIT License
是我自己写的一个插件但是无法解决弹出原生页面后点击穿透的问题,网上查的解决办法不适用,也是看到大佬也是弹SDK内容类型的插件 flutter我是菜鸟不怎么懂 但是又没在原生代码里看到相关的处理 所以想问一下怎么解决的 拜谢
/gdt_ad_mob( 7231): ... 16 more
D/AdSplashActivity( 7231): onNoAD adError:初始化错误,详细码:200102
D/PluginDelegate( 7231): EventChannel addEvent event:{adId=8022311121246224, errCode=2001, errMsg=初始化错误,详细码:200102, action=onAdError}
D/EGL_emulation( 7231): eglMakeCurrent: 0xec1e0e20: ver 3 0 (tinfo 0xebd36e90)
D/EGL_emulation( 7231): eglMakeCurrent: 0xec1e0e20: ver 3 0 (tinfo 0xebd36e90)
I/flutter ( 7231): onEventListener:adId:8022311121246224 action:onAdError
D/PluginDelegate( 7231): MethodChannel onMethodCall method:showSplashAd arguments:{posId=8022311121246224, logo=ic_logo2}
W/ActivityThread( 7231): handleWindowVisibility: no activity for token android.os.BinderProxy@f684af4
I/xiaoguanjia.ap( 7231): Rejecting re-init on previously-failed class java.lang.Class<com.qq.e.comm.plugin.POFactoryImpl>: java.lang.ExceptionInInitializerError:
错误原因:
a、错误为常规报错,没有广告填充,非sdk接入异常。
b、广告位请求匹配广告本身是一套复杂的逻辑,有人群画像、广告位效果、底价、屏蔽等多方面原因。
c、如果是新接入测试阶段新建广告位通常原因是缺乏历史数据模型,广告位竞争力差并且设备画像简陋导致匹配不到广告。
优化建议:
1、如果使用的是测试机,可以更换使用人群画像更丰富的设备尝试拉取(比如个人设备)或者在设备登录QQ,微信等丰富用户画像;
2、sdk接入可以考虑使用我们官方sdkdemo工程中所用到的广告位id,来尝试拉取广告进行测试;
7月20号优量汇更新了版本。修复了挺多问题
https://developers.adnet.qq.com/doc/android/union/union_version,大佬可以更新下广告插件吗
(可选方法)指定视频广告的播放配置,配置包含:
https://developers.adnet.qq.com/doc/android/union/union_download_confirm
在广告播放中(广告展示和落地页),点击触发广告下载时对开发者注册的回调函数进行回调,开发者可以使用回调获取应用名称、版本等相关信息,并进行弹窗提示用户是否确认进行下载。
适用场景:在合规的场景,点击下载类广告必须向用户展示应用信息并二次确认是否下载,而sdk的内部弹窗的格式不符合开发者UI要求的时候。
有助于应用更加合理合规
播放器版本:fijkplayer: ^0.10.1
手机默认静音状态
系统:iOS
1.经过下载Demo集成fijkplayer在主页跟信息流页面手机静音测试,显示了视频广告后播放器声音消失。
2.广告设置静音播放也会影响播放器声音。
3.不展示视频广告情况下,手机静音模式播放器是有声音的,只有视频广告展示后就影响了播放器
4.经过测试只要是视频广告都会影响
目前通过播放器重新设置音量都无法再次播放声音,不知道是不是广告影响的。
如下代码可以加到Demo工程主页或者信息流进行测试验证
// 播放
final FijkPlayer player = FijkPlayer();
player.setDataSource('http://player.alicdn.com/video/aliyunmedia.mp4',
autoPlay: true);
SliverToBoxAdapter(
child: FijkView(
height: MediaQuery.of(context).size.width / (16 / 9),
player: player,
))
之前一直使用的Admob,然后最近才申请到的优量汇。
想问一下,使用Admob的中介功能,后台配置好优量汇的情况下,客户端应该是怎样的呢?
引入该插件并初始化后,在调用广告的地方如果只使用admob的广告展示代码,会不会自动通过中介显示优量汇的广告呢?
平台:iOS
官方回复:出现这个提示一般是因为,请求中的操作系统类型与广告位在联盟平台的设置不匹配
Include of non-modular header inside framework module 'flutter_qq_ads.InterstitialPage'
Include of non-modular header inside framework module 'flutter_qq_ads.RewardVideoPage'
Include of non-modular header inside framework module 'flutter_qq_ads.SplashPage'
平台
iOS
解决方法
设置 Allow Non-modular includes in Framework Modules
设置为 Yes
即可
App是视频类的,想在开头或者片尾播放广告
iOS 正常,Android 跑真机有这个异常。
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_SKAdImpression", referenced from:
objc-class-ref in libGDTMobSDK.a(GDTAppStoreAdNetWorkModel.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Xcode:12.4
GDTMobSDK:4.13.02
flutter_qq_ads::1.1.1
构建现象
在 Xcode 12.5 (本地)上可以构建成功,在 Xcode 12.4(CICD 机器)上无法构建成功
参考链接
因为需要上架google play需要去掉QUERY_ALL_PACKAGES permission
请教下如何实现GlobalSetting的设置?
// 建议在初始化 SDK 前进行此设置
GlobalSetting.setEnableCollectAppInstallStatus(true);
参考连接:
https://developers.adnet.qq.com/doc/android/union/union_private_data_guide
不知什么版本突然开始,它的开屏广告就有这个问题了
错误原因:
a、错误为常规报错,没有广告填充,非sdk接入异常。
b、广告位请求匹配广告本身是一套复杂的逻辑,有人群画像、广告位效果、底价、屏蔽等多方面原因。
c、如果是新接入测试阶段新建广告位通常原因是缺乏历史数据模型,广告位竞争力差并且设备画像简陋导致匹配不到广告。
优化建议:
1、如果使用的是测试机,可以更换使用人群画像更丰富的设备尝试拉取(比如个人设备)或者在设备登录QQ,微信等丰富用户画像;
2、sdk接入可以考虑使用我们官方sdkdemo工程中所用到的广告位id,来尝试拉取广告进行测试;
如题
现在APP在国内应用市场上架时会检查app是否有个性化广告功能,如果有的话需要app提供配置开关,让用户能够关闭个性化广告。对于Flutter开发的APP,需要在Flutter代码中能够对此进行控制。
-[FAQFeedAdLoad nativeExpressAdFailToLoad:error:] error:Error Domain=GDTAdErrorDomain Code=3001 "网络错误" UserInfo={NSLocalizedDescription=网络错误}
flutter: adIndex:0
Lost connection to device.
不知道是什么原因导致 android获取到的广告宽高非常小 我只能暂时这样修改使用
/**
* 重新计算真实的广告 View 的宽高
*/
private void resizeAdView() {
this.fad.measure(100, 100);
int mw = this.fad.getMeasuredWidth();
int mh = this.fad.getMeasuredHeight();
//修改
mw = activity.getResources().getDisplayMetrics().widthPixels;
mh = (mw / 4) * 3;
Log.d(TAG, "resizeAdView width:" + mw + " height:" + mh);
FrameLayout.LayoutParams params=new FrameLayout.LayoutParams(mw,mh);
frameLayout.setLayoutParams(params);
frameLayout.requestLayout();
setFlutterViewSize(mw,mh);
}
经过测试,升级2.5.0版本后出现大量崩溃错误,降级到之前的2x分支未出现如下错误
2.5.0的版本错误如图,相关日志已经贴出来
Thread Name: 'main'
Back traces starts.
java.lang.NullPointerException: Attempt to write to field 'com.qq.e.ads.nativ.NativeExpressADView$ViewBindStatusListener com.qq.e.comm.plugin.gdtnativead.o.d' on a null object reference
at com.qq.e.comm.plugin.gdtnativead.o.setViewBindStatusListener(A:1)
at com.qq.e.comm.plugin.intersitial2.a$a.run(A:173)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:257)
at android.app.ActivityThread.main(ActivityThread.java:8215)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1031)
Back traces ends.
//=========================================================
Thread Name: 'main'
Back traces starts.
java.lang.IllegalArgumentException: Unsupported value: '[Ljava.util.List;@39a9ba6' of type 'class [Ljava.util.List;'
at f.a.c.a.q.p(Unknown Source:444)
at f.a.c.a.r.c(Unknown Source:11)
at f.a.c.a.j$a$a.a(Unknown Source:10)
at com.zero.flutter_qq_ads.d.a.onNoAD(Unknown Source:68)
at com.qq.e.ads.nativ.NativeExpressAD.d(Unknown Source:352)
at com.qq.e.ads.nativ.NativeExpressAD$ADListenerAdapter.onADEvent(Unknown Source:16)
at com.qq.e.comm.plugin.gdtnativead.h$d.run(A:1)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:230)
at android.app.ActivityThread.main(ActivityThread.java:7880)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:526)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
Back traces ends.
//=========================================================
Thread Name: 'main'
Back traces starts.
java.lang.IncompatibleClassChangeError: Class 'com.qq.e.ads.banner2.ADListenerAdapter' does not implement interface 'com.qq.e.comm.pi.NEADVI' in call to 'void com.qq.e.comm.pi.NEADVI.render()' (declaration of 'com.qq.e.comm.plugin.gdtnativead.o' appears in gdt_plugin.jar)
at com.qq.e.comm.plugin.gdtnativead.o.render(A:2)
at com.qq.e.comm.plugin.banner2.a$a.run(A:70)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:8073)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
Back traces ends.
//========================================================
Thread Name: 'main'
Back traces starts.
java.lang.NullPointerException: Attempt to invoke interface method 'void com.qq.e.comm.pi.NEADVI.setAdListener(com.qq.e.comm.adevent.ADListener)' on a null object reference
at com.qq.e.comm.plugin.gdtnativead.o.a(A:17)
at com.qq.e.comm.plugin.gdtnativead.o.a(A:3)
at com.qq.e.comm.plugin.gdtnativead.o$a.run(A:3)
at android.os.Handler.handleCallback(Handler.java:900)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8668)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
Back traces ends.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.