@gemukurieito

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

monacaでadmob-plus-cordovaを使用したいが「admob is not defined」のエラーが出た

解決したいこと

monacaを用いてアプリ開発をしています。Admobを使用しようと考えており、Cordovaプラグインである 'admob-plus-cordova' をインストールして広告の表示をしようとしたところエラーが出てしまいました。package.jsonのファイルにはプラグインがインストールされた記述があります。
解決方法がさっぱりわからないため質問させて頂きます。
宜しくお願い致します。

【環境】
開発環境:MonacaクラウドIDE
Cordova:12.0.0
ビルド環境:Cordova Android 12.0.0
対象OS:Android

インストール方法
スクリーンショット 2023-12-05 16.06.50.png
パラメータも設定済みです
スクリーンショット 2023-12-05 16.08.08.png

動作の確認はカスタムビルドしたアプリを実機でインストールして行なっています。

発生している問題・エラー

Uncaught (in promise) ReferenceError: admob is not defined

該当するソースコード

index.html

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
    <script src="components/loader.js"></script>
    <link rel="stylesheet" href="components/loader.css">
    
    <script>
    async function showAdBanner() {
        const banner = new admob.BannerAd({
            adUnitId: 'ca-app-pub-3940256099942544/6300978111',
            position: 'bottom',
        });
    await banner.show();
    }
    // この関数を適切なタイミングで呼び出す
    showAdBanner();
    </script>
<style>
</style>
</head>
<body>
</body>
</html>


自分で試したこと

・他のverの'admob-plus-cordova'のインストールを試した。
admob-plus-cordova@1.28.0

・scriptの中身を書き換えた

var admobid = { banner: 'ca-app-pub-3940256099942544/2934735716'}; // Test ad unit ID
var screenWidth = window.innerWidth;
var screenHeight = window.innerHeight;
var adX = screenWidth / 2 - 160;
var adY = screenHeight - 125;

var adMobInitialize = async function() {
    if (AdMob) {
        try {
            await admob.start(); // AdMob SDKの初期化
            AdMob.createBanner({
                adId: admobid.banner, 
                isTesting: true,
                overlap: true,
                position: 10, // default position
                x: adX, // default X of banner
                y: adY, // default Y of banner
                autoShow: true,
                adSize: 'LARGE_BANNER'
            });
        } catch (error) {
            console.error("Error initializing AdMob: " + error);
        }
    }
};

document.addEventListener("deviceready", adMobInitialize, false);

足りない情報があればすぐに更新しますので、宜しくお願い致します。

0 likes

1Answer

wordpressのプラグイン地獄の教訓からプラグインでエラーが出たら即削除です。類似プラグインを入れましょう。

名前空間を適切に利用できていません。

0Like

Your answer might help someone💌