ifmvo / togetherad Goto Github PK
View Code? Open in Web Editor NEW🔥持续更新。Android广告聚合:帮助 Android 开发者快速、便捷、灵活的接入国内多家主流安卓广告 SDK。广点通(优量汇)、穿山甲、快手联盟、百青藤(百度Mob)。开屏广告、Banner横幅广告、插屏广告、激励广告、原生信息流、全屏广告。
License: MIT License
🔥持续更新。Android广告聚合:帮助 Android 开发者快速、便捷、灵活的接入国内多家主流安卓广告 SDK。广点通(优量汇)、穿山甲、快手联盟、百青藤(百度Mob)。开屏广告、Banner横幅广告、插屏广告、激励广告、原生信息流、全屏广告。
License: MIT License
你好,请问一下,这种方式封装,会影响计费吗?想用到线上生产环境,不知道可不可靠!感谢!
你的建议基于你遇到什么问题?
海外广告版会更新吗
你希望怎样改进?
目前的TogetherAdSea太久了
广点通红米手机插件报错
406-25 14:14:58.806 29719 29719 E AndroidRuntime: Process: io.wenyuange.app.release, PID: 29719
506-25 14:14:58.806 29719 29719 E AndroidRuntime: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
606-25 14:14:58.806 29719 29719 E AndroidRuntime: at android.view.ViewGroup.addViewInner(ViewGroup.java:5316)
706-25 14:14:58.806 29719 29719 E AndroidRuntime: at android.view.ViewGroup.addView(ViewGroup.java:5137)
806-25 14:14:58.806 29719 29719 E AndroidRuntime: at android.view.ViewGroup.addView(ViewGroup.java:5109)
906-25 14:14:58.806 29719 29719 E AndroidRuntime: at com.qq.e.comm.plugin.n.d.a(A:364)
1006-25 14:14:58.806 29719 29719 E AndroidRuntime: at com.qq.e.comm.plugin.n.d.a(A:57)
1106-25 14:14:58.806 29719 29719 E AndroidRuntime: at com.qq.e.comm.plugin.n.d$4.a(A:312)
1206-25 14:14:58.806 29719 29719 E AndroidRuntime: at com.qq.e.comm.plugin.ad.a.j.a(A:117)
1306-25 14:14:58.806 29719 29719 E AndroidRuntime: at com.qq.e.comm.plugin.ad.a.j.a(A:99)
1406-25 14:14:58.806 29719 29719 E AndroidRuntime: at com.qq.e.comm.plugin.ad.f.shouldOverrideUrlLoading(A:50)
1506-25 14:14:58.806 29719 29719 E AndroidRuntime: at android.webkit.WebViewClient.shouldOverrideUrlLoading(WebViewClient.java:83)
1606-25 14:14:58.806 29719 29719 E AndroidRuntime: at org.chromium.android_webview.AwContentsClientBridge.shouldOverrideUrlLoading(chromium-TrichromeWebViewGoogle.apk-stable-410410683:16)
1706-25 14:14:58.806 29719 29719 E AndroidRuntime: at android.os.MessageQueue.nativePollOnce(Native Method)
1806-25 14:14:58.806 29719 29719 E AndroidRuntime: at android.os.MessageQueue.next(MessageQueue.java:339)
1906-25 14:14:58.806 29719 29719 E AndroidRuntime: at android.os.Looper.loop(Looper.java:198)
2006-25 14:14:58.806 29719 29719 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8228)
2106-25 14:14:58.806 29719 29719 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
2206-25 14:14:58.806 29719 29719 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
2306-25 14:14:58.806 29719 29719 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
建议更新一下广点通aar包吧
类:KsProviderReward 中 showRewardAd 返回false
override fun showRewardAd(activity: Activity): Boolean {
if (rewardVideoAd?.isAdEnable == true) {
val config = KsVideoPlayConfig.Builder()
.showLandscape(KsProvider.Reward.isShowLandscape)
.build()
rewardVideoAd!!.showRewardVideoAd(activity, config)
}
return false
}
用的NativeViewGdtSimple1,视频显示正常,就图片差一截子。
视频截图:https://p.pstatp.com/origin/fec90003648c411a3ed0
图片截图:https://p.pstatp.com/origin/138290001f668cf51def8
最近上架华为被检测出在用户接受协议前收集设备信息的问题,原因是广告SDK在启动时初始化,没等用户接受协议就去获取设备信息了,能否封装成友盟SDK一样的模式:先“预初始化”,等用户接受后再调真正的初始化,此时再去获取设备信息。
你的建议基于你遇到什么问题?
在Application中预加载开屏广告
你希望怎样改进?
参数Activity -> Context
Failed to resolve: com.github.ifmvo:TogetherAd:lastVersion
激励广告也更新了,需要楼主支援
请求失败-onAdFailed VideoFragmentcsj-----错误码: 40029, 错误信息:两种情况:1. SDK版本低;使用的sdk版本过低,还不支持个性化模板渲染功能。解决办法:升级到平台最新版本sdk。2. 接口使用错误;创建的代码位类型是模板渲染/非模板渲染,但是请求方法是非模板渲染/模板渲染的方法。解决办法:使用模板渲染的方法去请求模板渲染类型或者使用非模板渲染的方法去请求非模板类型的广告,如果代码位在平台上是模板渲染,可以参考文档中个性化模板XX广告的部分,demo中参考带有express部分的代码。如果代码位不是模板渲染,则不要调用含有express字样的接口。参考文档:https://partner.oceanengine.com/doc?id=5dd0fe716b181e00112e3eb8
Originally posted by @SuperZhouyong in #17 (comment)
你的建议基于你遇到什么问题?
开屏广告请求与展示分开的示例可否更加具体一点,体现不出在实际应用中的使用
你希望怎样改进?
我理解请求和展示分开是可以用来预加载,但是看到AdHelperSplashPro中传入了Activity引用,感觉不能用于预加载
我想问可以持有一个单例,在开屏页面展示的时候先请求,下次进入另一个activity再展示,达到预加载的效果吗
Bug 描述和日志
viewpager2+fragment左滑后返回 穿山甲的banner广告就没了 过一会才能自动刷新出来
gdt正常
Bug 复现的步骤
viewpager2滑动返回
系统版本以及设备型号
附加信息
近期优量汇开屏骤降就想着把优量汇的权重改为0试试,发现好像并不生效,依旧展示,且有时候权重小的比权重大的展示量大
Bug 描述和日志
在滑动的时候报错,The specified child already has a parent. You must call removeView() on the child's parent first.
快手视频广告,连续弹出好几个广告,最后日志还显示失败
2021-10-14 19:24:35.394 5074-5074/xxx/TogetherAd: 随机到的广告: ks
2021-10-14 19:24:37.053 5074-5074/xxx/广告 RewardListener: onAdLoaded providerType: ks
2021-10-14 19:24:37.071 5074-5074/xxx/TogetherAd: 随机到的广告: ks
2021-10-14 19:24:37.562 5074-5074/xxx/广告 RewardListener: onAdLoaded providerType: ks
2021-10-14 19:24:37.575 5074-5074/xxx/TogetherAd: 随机到的广告: ks
2021-10-14 19:24:39.741 5074-5074/xxx/广告 RewardListener: onAdLoaded providerType: ks
2021-10-14 19:24:39.755 5074-5074/xxx/TogetherAd: 随机到的广告: ks
2021-10-14 19:24:41.188 5074-5074/xxx/广告 RewardListener: onAdLoaded providerType: ks
2021-10-14 19:24:41.201 5074-5074/xxx/TogetherAd: 随机到的广告: ks
2021-10-14 19:24:41.422 5074-5074/xxx/TogetherAd: ks: 请求失败了:40003 广告数据为空
2021-10-14 19:24:41.422 5074-5074/xxx/广告 BaseListener: onAdFailedAll failedMsg: 全部请求失败或没有分配任何广告
2021-10-14 19:24:41.422 5074-5074/xxx/广告 BaseListener: onAdFailed providerType:ks failedMsg: 广告数据为空
大哥,我建议你弄个java版本的,学习成本太高了,一人血书在线等!
你的建议基于你遇到什么问题?
希望尽快添加
你希望怎样改进?
这个方法onAdVideoComplete
广点通/优量汇现在似乎是包装在同一个provider里面的, 如果我要同时使用这两个有没有什么快速的途径?
还是说我只能拷一份代码, 命名为新的
3.增进意见
希望楼主,对所有广告平台的模板依赖做个保底,自渲染作为 可选项目。
你的建议基于你遇到什么问题?
由于我们只使用一家平台,有时会拉取失败,我的改进思路是,维护一个广告队列,用服务去拉取,当队列里的广告少于3条时就去拉取,相当于做了一个公共的广告池。尴尬的是,AdHelperXXX类需要传入Activity,这是不是就是说如果要做缓存只能针对单个页面?是否可以做一个全局的广告池?
你希望怎样改进?
希望能够实现广告的全局缓存
目前需要自己封装一个预加载,然后自己封装重试机制
希望提供预加载方法,内部缓存好对应的广告信息。如果失败建议支持重试机制,外部指定重试几次
目前穿山甲,广点通,快手,设置开屏广告的尺寸,设置信息流广告的大小都要通过各自的Provider类去实现
CsjProvider.Splash
GdtProvider.Splash
针对开屏,信息流等提供通用的初始化方法,差异化信息在内部方法区分,不暴露给使用者
在创建的纯净新项目(kotlin androidx)里,只有一个引导页和mainActivity里使用的demo里的混淆之后发现广点通一直初始化失败,把gdt csj core里的混淆在单独加进去之后还是初始化失败,最后我把
//穿山甲( 头条 )
implementation 'com.matthewchen.togetherad:csj:3.1.8-3.2.5.1'
//优量汇( 腾讯广点通 )
implementation 'com.matthewchen.togetherad:gdt:3.1.8-4.270.1140'
改用implementation project
implementation project(':csj')
implementation project(':gdt')
然后广点通初始成功了,不知道为什么会这样子
加油,加油,加油
你好,
广点通的信息流广告好像很多种,现在用了NativeMediaAD是因为这个类型的广告能用作通用的信息流广告么?(视频 和 图文混合的都会出现)
感谢
E/TogetherAd: csj: 请求失败了:40029 两种情况:1. SDK版本低;使用的sdk版本过低,还不支持个性化模板渲染功能。解决办法:升级到平台最新版本sdk。2. 接口使用错误;创建的代码位类型是模板渲染/非模板渲染,但是请求方法是非模板渲染/模板渲染的方法。解决办法:使用模板渲染的方法去请求模板渲染类型或者使用非模板渲染的方法去请求非模板类型的广告,如果代码位在平台上是模板渲染,可以参考文档中个性化模板XX广告的部分,demo中参考带有express部分的代码。如果代码位不是模板渲染,则不要调用含有express字样的接口。参考文档:https://partner.oceanengine.com/doc?id=5dd0fe716b181e00112e3eb8
穿山甲提示该报错
09-09 10:53:24.417 6824-6840/? I/TogetherAd: 初始化穿山甲
09-09 10:53:24.419 6824-6840/? I/TogetherAd: 注册广告提供商:chuan_shan_jia
09-09 10:53:24.536 6824-6840/? I/TogetherAd: 初始化广点通
09-09 10:53:24.537 6824-6840/? I/TogetherAd: 注册广告提供商:guang_dian_tong
09-09 10:53:24.621 6824-6840/? I/TogetherAd: 初始化百青藤
09-09 10:53:24.623 6824-6840/? I/TogetherAd: 注册广告提供商:bai_qing_teng
09-09 10:53:24.693 6824-6840/? I/TogetherAd: 初始化快手
09-09 10:53:24.695 6824-6840/? I/TogetherAd: 注册广告提供商:kuai_shou
09-09 10:53:24.803 6824-6840/? W/System.err: at com.ifmvo.togetherad.ks.TogetherAdKs.init(TogetherAdKs.kt:56)
09-09 10:53:24.803 6824-6840/? W/System.err: at com.ifmvo.togetherad.ks.TogetherAdKs.init(TogetherAdKs.kt:35)
09-09 10:53:24.803 6824-6840/? W/System.err: at com.onyuan.togetherad.App.init(Apk.kt:139)
09-09 10:53:24.812 6824-6840/? I/TogetherAd: 设置默认广告提供商比例:chuan_shan_jia:1,guang_dian_tong:0,bai_qing_teng:0,kuai_shou:0,
09-09 10:53:29.212 6824-6840/? V/TogetherAd: 开始倒计时:8000
09-09 10:53:29.217 6824-6840/? I/TogetherAd: 提供商权重:{chuan_shan_jia=1, guang_dian_tong=0, bai_qing_teng=0, kuai_shou=3}
09-09 10:53:29.233 6824-6840/? I/TogetherAd: 权重最高的是: kuai_shou
09-09 10:53:29.238 6824-6824/? I/TogetherAd: kuai_shou: 开始请求
09-09 10:53:29.238 6824-6824/? I/TogetherAd.allAdListener: 开始请求: 提供商: kuai_shou, 广告位: ad_reward_landscape
09-09 10:53:29.240 6824-6824/? E/TogetherAd: kuai_shou: 请求失败了:null 快手广告SDK初始化失败
09-09 10:53:29.240 6824-6824/? I/TogetherAd: 提供商权重:{chuan_shan_jia=1, guang_dian_tong=0, bai_qing_teng=0, kuai_shou=0}
09-09 10:53:29.240 6824-6824/? I/TogetherAd: 权重最高的是: chuan_shan_jia
09-09 10:53:29.253 6824-6824/? E/TogetherAd.allAdListener: 请求失败: 提供商: kuai_shou, 广告位: ad_reward_landscape, 错误信息: 快手广告SDK初始化失败
09-09 10:53:29.253 6824-6824/? I/TogetherAd: chuan_shan_jia: 开始请求
09-09 10:53:29.253 6824-6824/? I/TogetherAd.allAdListener: 开始请求: 提供商: chuan_shan_jia, 广告位: ad_reward_landscape
appId 和 广告位Id 是用的咱demo里面的
用的mumu模拟器测试的, 必现
你的建议基于你遇到什么问题?
你希望怎样改进?
gradle4.1.1,创建新项目,依赖方式
implementation project(':core')
implementation project(':csj')
implementation project(':gdt')
最后出现 Direct local .aar file dependencies are not supported 的问题,直接Sync失败
穿山甲都已经不允许创建原生自渲染广告了,导致原生自渲染广告这个功能用不了,是不是可以弄一个原生模板广告的功能呢?
Bug 描述和日志
5.0.0及以上版本,播放激励视频广告出现同时请求两个广告,我这边已经排除调用两次的可能。
必现的,5.0.0及以上版本才出现的。
2021-04-23 18:28:35.452 20962-21183/com.xxxx.www I/Adreno: QUALCOMM build : 6c0fbe4, I4f6179b11f
Build Date : 03/05/20
OpenGL ES Shader Compiler Version: EV031.26.03.02
Local Branch :
Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.UM.7.11.R1.09.00.00.542.027
Remote Branch : NONE
Reconstruct Branch : NOTHING
2021-04-23 18:28:35.452 20962-21183/com.xxxx.www I/Adreno: Build Config : S P 6.0.9 AArch32
2021-04-23 18:28:35.475 20962-21183/com.xxxx.www I/Adreno: PFP: 0x016ee183, ME: 0x00000000
2021-04-23 18:28:59.255 20962-20962/com.xxxx.www D/MainActivity: appPlayRewardAd: {"type_ad":5,"type":1}
2021-04-23 18:28:59.570 20962-20962/com.xxxx.www V/TogetherAd: 开始倒计时:5000
2021-04-23 18:28:59.589 20962-20962/com.xxxx.www I/TogetherAd: 提供商权重:gdt:1000,csj:4000,baidu:0,
2021-04-23 18:28:59.615 20962-20962/com.xxxx.www I/TogetherAd: 随机到的广告: csj
2021-04-23 18:28:59.765 20962-20962/com.xxxx.www V/TogetherAd: 倒计时:4806
2021-04-23 18:28:59.765 20962-20962/com.xxxx.www I/TogetherAd: csj: 开始请求
2021-04-23 18:28:59.766 20962-20962/com.xxxx.www I/RewardActivity: onAdStartRequest: csj
2021-04-23 18:29:00.523 20962-20962/com.xxxx.www I/TogetherAd: csj: 请求成功了
2021-04-23 18:29:00.524 20962-20962/com.xxxx.www I/RewardActivity: onAdLoaded: csj
2021-04-23 18:29:01.458 20962-20962/com.xxxx.www V/TogetherAd: 开始倒计时:5000
2021-04-23 18:29:01.459 20962-20962/com.xxxx.www I/TogetherAd: 提供商权重:gdt:1000,csj:4000,baidu:0,
2021-04-23 18:29:01.459 20962-20962/com.xxxx.www I/TogetherAd: 随机到的广告: csj
2021-04-23 18:29:01.647 20962-20962/com.xxxx.www V/TogetherAd: 倒计时:4811
2021-04-23 18:29:01.647 20962-20962/com.xxxx.www I/TogetherAd: csj: 开始请求
2021-04-23 18:29:01.647 20962-20962/com.xxxx.www I/RewardActivity: onAdStartRequest: csj
2021-04-23 18:29:01.684 20962-20962/com.xxxx.www I/TogetherAd: csj: 视频已缓存
2021-04-23 18:29:01.684 20962-20962/com.xxxx.www I/RewardActivity: onAdVideoCached: csj
2021-04-23 18:29:02.488 20962-20962/com.xxxx.www I/AdEvent: pangolin ad show show_3 312bfa952f6c9931a934da403b9c4d9e7e265d8eaa82ec108S6yMqPjXruZWEp/1DqzUIA0o2GYK7u+KqIP/oneBDot3tfU76PLle+JQPr0/OupktcCGW1GCFRof
T1Dhzt7Cnk17yyVfTc8xD4+jH5cWVC1QT21a/CWoh0DCxgpRDcKboKy//S0pm75ADw/flxmr4uzX
EwQnzxODHegMRV7nNSSurlp5d9VtEy7qsM2CqGo0HBLcxcaJ4z1boBK6dPjwNQ==
2021-04-23 18:29:02.536 20962-20962/com.xxxx.www I/TogetherAd: csj: 展示了
2021-04-23 18:29:02.537 20962-20962/com.xxxx.www I/RewardActivity: onAdShow: csj
2021-04-23 18:29:02.537 20962-20962/com.xxxx.www I/TogetherAd: csj: 曝光了
2021-04-23 18:29:02.537 20962-20962/com.xxxx.www I/RewardActivity: onAdExpose: csj
2021-04-23 18:29:02.778 20962-20962/com.xxxx.www V/TogetherAd: 倒计时:3680
2021-04-23 18:29:02.877 20962-20962/com.xxxx.www I/TogetherAd: csj: 请求成功了
2021-04-23 18:29:02.877 20962-20962/com.xxxx.www I/RewardActivity: onAdLoaded: csj
2021-04-23 18:29:03.740 20962-20962/com.xxxx.www I/AdEvent: pangolin ad show show_3 348d58524252ab670adea17486adf280255e73f8d31bb3545IuQWp4ChapjOBdIA8KSwACGM/bwLYrVCfO7RLtAPQFuZCS58D6q9tzF06Ddc6FT4pUPAHpWRfgYp
Cv8CWFCaa1HeA+0mWak6e5PaXbMJnGHJwtZd2mO4BjSaTHw/CN9TjaqUfW5orLB+pdYXqucofNzb
7TbZQ2XFVfFvMOAZLcRi8id35mLDNrnUmx336J7J4r1YUjveW7KE8s21XPwSgw==
2021-04-23 18:29:03.798 20962-20962/com.xxxx.www I/TogetherAd: csj: 展示了
2021-04-23 18:29:03.799 20962-20962/com.xxxx.www I/RewardActivity: onAdShow: csj
2021-04-23 18:29:03.799 20962-20962/com.xxxx.www I/TogetherAd: csj: 曝光了
2021-04-23 18:29:03.799 20962-20962/com.xxxx.www I/RewardActivity: onAdExpose: csj
2021-04-23 18:29:03.808 20962-20962/com.xxxx.www I/TogetherAd: csj: 视频已缓存
2021-04-23 18:29:03.808 20962-20962/com.xxxx.www I/RewardActivity: onAdVideoCached: csj
2021-04-23 18:29:07.510 20962-20962/com.xxxx.www I/TogetherAd: csj: 激励验证
2021-04-23 18:29:07.510 20962-20962/com.xxxx.www I/RewardActivity: onAdRewardVerify,csj
2021-04-23 18:29:28.810 20962-20962/com.xxxx.www I/TogetherAd: csj: 激励验证
2021-04-23 18:29:28.811 20962-20962/com.xxxx.www I/RewardActivity: onAdRewardVerify,csj
2021-04-23 18:29:31.389 20962-20962/com.xxxx.www I/TogetherAd: csj: 播放完成
2021-04-23 18:29:31.389 20962-20962/com.xxxx.www I/RewardActivity: onAdVideoComplete: csj
2021-04-23 18:34:41.164 20962-20962/com.xxxx.www I/TogetherAd: csj: 关闭了
2021-04-23 18:34:41.164 20962-20962/com.xxxx.www I/RewardActivity: onAdClose: csj
2021-04-23 18:34:42.746 20962-20962/com.xxxx.www I/TogetherAd: csj: 关闭了
2021-04-23 18:34:42.747 20962-20962/com.xxxx.www I/RewardActivity: onAdClose: csj
Bug 复现的步骤
代码主要来自https://github.com/ifmvo/TogetherAd/blob/master/demo/src/main/java/com/ifmvo/togetherad/demo/reward/RewardActivity.kt
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import com.ifmvo.togetherad.core.helper.AdHelperReward
import com.ifmvo.togetherad.core.listener.RewardListener
import com.ifmvo.togetherad.core.utils.loge
import com.ifmvo.togetherad.core.utils.logi
import java.util.*
import kotlin.concurrent.timerTask
/**
* 激励广告使用实例
*
* Created by Matthew Chen on 2020-04-22.
*/
class RewardActivity : Activity() {
private val TAG = "RewardActivity"
private lateinit var adHelperReward: AdHelperReward
companion object {
fun action(context: Context) {
context.startActivity(Intent(context, RewardActivity::class.java))
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val thisActivity = this
val rewardType = intent.getStringExtra("type")
/**
* activity: 必传。
* alias: 必传。广告位的别名。初始化的时候是根据别名设置的广告ID,所以这里TogetherAd会根据别名查找对应的广告位ID。
* ratioMap: 非必传。广告商的权重。可以不传或传null,空的情况 TogetherAd 会自动使用初始化时 TogetherAd.setPublicProviderRadio 设置的全局通用权重。
* listener: 非必传。如果你不需要监听结果可以不传或传空。各个回调方法也可以选择性添加
*/
adHelperReward = AdHelperReward(activity = this, alias = "ad_reward", /*ratioMap = ratioMapReward,*/ listener = object : RewardListener {
override fun onAdStartRequest(providerType: String) {
//在开始请求之前会回调此方法,失败切换的情况会回调多次
addLog("\n开始请求: $providerType")
"onAdStartRequest: $providerType".logi(TAG)
}
override fun onAdFailed(providerType: String, failedMsg: String?) {
//请求失败的回调,失败切换的情况会回调多次
addLog("请求失败: $providerType")
"onAdFailed: $providerType: $failedMsg".loge(TAG)
//提示一下错误,方便找bug
Toast.makeText(thisActivity, "$providerType:$failedMsg", Toast.LENGTH_SHORT).show()
}
override fun onAdFailedAll(failedMsg: String?) {
//所有配置的广告商都请求失败了,只有在全部失败之后会回调一次
addLog("全部失败: $failedMsg")
"onAdFailedAll: $failedMsg".loge(TAG)
val timer = Timer()
timer.schedule(timerTask { sendResult("error"); finish() }, 300)
}
override fun onAdClicked(providerType: String) {
//点击广告的回调
addLog("点击了: $providerType")
"onAdClicked: $providerType".logi(TAG)
}
override fun onAdShow(providerType: String) {
//广告展示展示的回调
addLog("展示了: $providerType")
"onAdShow: $providerType".logi(TAG)
}
override fun onAdLoaded(providerType: String) {
//广告请求成功的回调,每次请求只回调一次
addLog("请求到了: $providerType")
"onAdLoaded: $providerType".logi(TAG)
//onAdLoaded 回调之后才能展示
adHelperReward.show()
}
override fun onAdExpose(providerType: String) {
//广告展示曝光的回调
addLog("曝光了: $providerType")
"onAdExpose: $providerType".logi(TAG)
}
override fun onAdVideoComplete(providerType: String) {
//视频播放完成的回调
addLog("视频播放完成: $providerType")
"onAdVideoComplete: $providerType".logi(TAG)
}
override fun onAdVideoCached(providerType: String) {
//视频缓存完成的回调
addLog("视频已缓存: $providerType")
"onAdVideoCached: $providerType".logi(TAG)
}
override fun onAdRewardVerify(providerType: String) {
//激励结果验证成功的回调
addLog("激励验证,$providerType")
"onAdRewardVerify,$providerType".logi(TAG)
//把数据返回至上一级activity
sendResult(rewardType)
}
override fun onAdClose(providerType: String) {
//广告被关闭的回调
addLog("关闭了: $providerType")
"onAdClose: $providerType".logi(TAG)
finish()
}
})
//开始请求广告
adHelperReward.load();
}
private fun addLog(content: String?) {
Log.d(TAG, "addLog: " + content)
}
//把数据返回至上一级activity
private fun sendResult(content: String?) {
val data = Intent()
data.putExtra("name", "RewardActivity")
data.putExtra("type", content)
setResult(Activity.RESULT_OK, data)
}
}
截图
如果Bug展示较为明显,最好附上截图
系统版本以及设备型号
附加信息
日活10万的App接入了开屏广告,收入大概是多少?
广点通自渲染视频点击后进入广告详情页后再返回声音依旧存在,再次点击视频广告无法唤起广告详情页。
快手信息流广告,还没实现吗?
abstract class KsProviderNativeExpress : KsProviderNative() {
override fun getNativeExpressAdList(activity: Activity, adProviderType: String, alias: String, adCount: Int, listener: NativeExpressListener) {
callbackNativeExpressStartRequest(adProviderType, alias, listener)
// 这里怎么直接就调用失败了?
callbackNativeExpressFailed(adProviderType, alias, listener, null, activity.getString(R.string.ks_can_not))
}
override fun destroyNativeExpressAd(adObject: Any) {
}
override fun nativeExpressAdIsBelongTheProvider(adObject: Any): Boolean {
return false
}
}
请求失败了:错误码: 40029}, 错误信息:两种情况:1. SDK版本低;使用的sdk版本过低,还不支持个性化模板渲染功能。解决办法:升级到平台最新版本sdk。2. 接口使用错误;创建的代码位类型是模板渲染/非模板渲染,但是请求方法是非模板渲染/模板渲染的方法。解决办法:使用模板渲染的方法去请求模板渲染类型或者使用非模板渲染的方法去请求非模板类型的广告,如果代码位在平台上是模板渲染,可以参考文档中个性化模板XX广告的部分,demo中参考带有express部分的代码。如果代码位不是模板渲染,则不要调用含有express字样的接口。参考文档:https://partner.oceanengine.com/doc?id=5dd0fe716b181e00112e3eb8
什么情况?
广点通的AppId和广告位的Id随便输入,都能加载的出来,麻烦您看一下
请问一下,知道怎么修改广点通的广告背景,比如说,APP有夜间模式以及其他颜色的主题,但是广点通的广告背景一直是白色背景,可以修改成其他颜色吗,有人说新建广告位的时候可以设置背景。但是假如APP的颜色主题有几十种,那不是要几十个广告位吗?请问大佬有研究过修改广告背景的方法吗
RecyclerView中使用信息流: 穿山甲原生模板广告功能 什么时候可以更新一下呢?
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.