【monaca】nend広告をタップできない(何も起こらない)時の解決方法


monacaアプリにnend広告を実装しても、広告はちゃんと表示できるのに広告をタップしても何も反応しないことがあります。原因は、広告のロードにタイムラグがあるからです。タイムラグがあったらなぜ反応しないのかは僕の知識ではよくわかりませんが、とにかく原因はそれです。

解決方法を探していたら次の記事を見つけ、これで解決することができました。

ただ、この記事は2015年に書かれたもので、このままではちゃんと動かないので少し修正を加えて以下のようにしました。これをheadに挿入すると広告をタップできるようになります。


         addEventListener('load', onLoad, false);
      function onLoad() {
                //nendの広告タグのロードにラグがあるので、決め打ちで処理を遅延させています。
                var TIME_FOR_WAITING_NEND_AD = 500;

                setTimeout(function () {

                    var nendAdSpace = document.querySelector('div[id^=nend_adspace]');
                    var nendAdAnchors = nendAdSpace.querySelectorAll('a');

                    for (var i = 0; i < nendAdAnchors.length; i++) {
                        var hrefShelter = nendAdAnchors[i].href;
                        nendAdAnchors[i].removeAttribute('href');
                        nendAdAnchors[i].addEventListener('click', function () {
                           cordova.InAppBrowser.open(hrefShelter, "_system", 'location=yes');
                        }, false);
                    }                

                }, TIME_FOR_WAITING_NEND_AD);
            }

cordova.InAppBrowser.open(hrefShelter, "_system", 'location=yes');によって広告がSafariで開くようになっています。InAppBrowserプラグインを有効にしておいてください。

ちょこっと宣伝

monacaでアプリ作ってます

オナ禁アプリ↓

禁欲エボリューション

レポート用メモアプリ↓

文字数制限メモ