如何在Phonegap Build中使用Phonegap-admob插件显示广告?求助广告不显示问题
排查PhoneGap Build中AdMob广告不显示的问题
我来帮你一步步排查这个问题——AdMob广告不显示在PhoneGap Build项目里是个挺常见的坑,咱们从几个核心点入手:
1. 先修正代码里的明显拼写错误
你代码里的autoShowRInterstitial是个笔误,应该是autoShowInterstitial,这个拼写错误可能导致插页广告的自动展示逻辑失效。另外,你定义了showad()函数但没触发它,插页广告自然不会被请求;还有,建议给广告操作加上成功/失败回调,方便看控制台日志排查问题。
修改后的代码示例:
<script src="code.js"></script> <script type="text/javascript"> function onDeviceReady() { console.log('设备已就绪,开始初始化AdMob'); document.removeEventListener('deviceready', onDeviceReady, false); // 设置AdMob选项 admob.setOptions({ publisherId: "ca-app-pub-3940256099942544/6300978111", // 测试ID没问题 interstitialAdId: "ca-app-pub-3940256099942544/1033173712", // 测试插页ID autoShowBanner: true, autoShowInterstitial: false, // 修正拼写错误 }); // 创建Banner广告,添加回调排查错误 admob.createBannerView(null, function() { console.log('Banner广告创建成功!'); }, function(error) { console.error('Banner创建失败:', JSON.stringify(error)); } ); // 请求并展示插页广告的函数 function showad(){ admob.requestInterstitialAd( function() { console.log('插页广告请求成功'); // 因为autoShowInterstitial设为false,需要手动调用展示 admob.showInterstitialAd(); }, function(error) { console.error('插页广告请求失败:', JSON.stringify(error)); } ); } // 测试触发:比如页面加载5秒后显示插页广告,或者绑定到按钮点击 setTimeout(showad, 5000); // 也可以绑定按钮:document.getElementById('show-ad-btn').addEventListener('click', showad); } document.addEventListener("deviceready", onDeviceReady, false); </script>
2. 确认config.xml的插件和权限配置是否完整
你提到已经添加了插件,但要确保插件ID和版本是兼容的,同时必要的权限不能少:
<!-- 添加Android平台必要权限 --> <platform name="android"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> </platform> <!-- iOS平台需要配置ATS,允许AdMob的网络请求 --> <platform name="ios"> <config-file parent="NSAppTransportSecurity" platform="ios" target="*-Info.plist"> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> </config-file> </platform> <!-- 安装兼容的AdMob插件,推荐用cordova-plugin-admob-free --> <plugin name="cordova-plugin-admob-free" spec="^0.27.0" />
3. 关键排查步骤:查看控制台日志
这是最有效的排查方式:
- 开启PhoneGap Build的调试模式,打包后在设备上用Chrome DevTools(安卓)或Safari开发者工具(iOS)查看控制台输出
- 确认
deviceready事件是否真的触发(看你加的console.log输出) - 查看广告创建/请求的错误信息,AdMob会返回具体的错误码(比如网络问题、ID无效、广告库存不足等)
4. 其他注意事项
- 你用的是Google官方测试ID,这个是没问题的,但要确保测试设备没有被AdMob屏蔽(比如频繁测试可能被临时限制)
- 确认设备网络正常,AdMob需要稳定的网络连接加载广告
- 检查PhoneGap Build的Cordova版本和插件版本是否兼容,尽量用最新的稳定版插件
内容的提问来源于stack exchange,提问作者Chance Hoard
相关产品推荐
相关产品推荐

