You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 19:02:44