无需点击按钮,Cordova Android用Admob Plus实现启动自动展示广告
实现应用启动自动展示广告的修改方案
你当前代码的开屏广告仅监听了应用从后台切回的resume事件,首次启动不会触发该事件,补全对应逻辑即可实现启动自动展示广告的效果:
1. 开屏广告启动+后台切回都自动展示
修改initAppOpenAd方法,抽离公共展示逻辑,新增首次启动触发调用:
initAppOpenAd() { const ad = new admob.AppOpenAd({ adUnitId: 'ca-app-pub-3940256099942544/5662855259', orientation: admob.AppOpenAd.Orientation.Portrait, }) // 抽离公共广告展示逻辑,复用 const tryShowAd = () => { const shouldSkip = Date.now() - lastAdTime <= 1000 * 5 if (shouldSkip) return; ad.isLoaded().then((loaded) => loaded ? ad.show() : ad.load()) } // 保留切后台回前台的展示逻辑 document.addEventListener('resume', tryShowAd, false) // 新增:首次启动直接尝试加载+展示广告 tryShowAd() }
2. 启动自动展示其他类型广告(可选)
如果需要启动就展示插屏、横幅等其他类型广告,直接在onDeviceReady方法的admob.start回调链中追加对应调用即可,示例如下:
admob .start() .then(() => this.initAppOpenAd()) .then(() => admob.BannerAd.config({ backgroundColor: '#A7A7A7', marginTop: 10, marginBottom: 10, }), ) // 启动后自动展示插屏广告 .then(() => this.showInterstitialAd()) // 启动后自动展示底部横幅广告,需要就取消注释 // .then(() => this.showBannerAd()) .catch(alert)
注意事项:你原有代码中的lastAdTime5秒冷却逻辑已经避免了短时间重复展示广告的问题,符合Admob的展示规范,不会触发平台限流。首次启动时如果广告还未加载完成,会先触发加载,加载成功后自动展示,不会阻塞应用正常启动。
内容的提问来源于stack exchange,提问作者baha zou
相关产品推荐
相关产品推荐

