4

Cordova 2.2.0 フレームワーク内で Android アプリを開発していますが、GPT ベースの広告でクリックスルーを取得するのに苦労しています。(確かに、これを試すのは私が初めてではありません。)

GPT は、本質的に以下を含む広告クリエイティブでフレンドリーな IFRAME をレンダリングします。<a href="http://www.example.com/clickthrough/yadayadayada" target="_blank">(ad creative)</a>

ブラウザと iOS では、広告をタップすると新しいブラウザ ウィンドウでクリックスルーが開きます。これを実現したいと考えています。しかし、Kindle Fire HD と Droid 4 の両方のネイティブ アプリでは、広告をタップすると、IFRAME スペース内にクリックトラフ ページが開くため、他のページ内にレンダリングされたページの左上 320x50 が表示されます。

ホワイトリストを編集しようとしましたが、クリエイティブはどこからでも取得でき (残りの広告を埋めるために複数の広告ネットワークを使用しています)、広告は私が制御できない IFRAME でレンダリングされるため、それはオプションではありません。で HREF をラップできjavascript:window.open()ましたが、Android の Java コードでこれらのクリックスルーをインターセプトする方法が見つかりませんでした。

AdMob についても調べましたが、上司は、1 つから 3 つの広告がページと共にスクロールするモバイル Web サイトの広告エクスペリエンスを変更したくありません。

EDIT広告が表示されるページにAdMobビューをレンダリングできるため、ビューがウェブサイトとともにスクロールすることができます。

これらのクリックスルーを新しいウィンドウで開くにはどうすればよいですか?

ご協力いただきありがとうございます。

4

1 に答える 1

3

広告をロードまたは更新する関数に、次の JavaScript コードを追加しました。

$('.advertisement iframe').each(function() {
    $(this).one('load', function() {
        makeOpenWindowHref(this);
    });
});

関数で:

function makeOpenWindowHref(element) {
    if (isNativeApp){
        $(element).contents().find('a[href^="http"]').each(function() {
            $(this).click(function(event){
                event.preventDefault();
                navigator.app.loadUrl($(this).attr("href"), {
                    openExternal:true
                });
            });
        });
    }
}

これにより、基本的に IFRAME の内容が変更され、Cordovanavigator.app.loadUrl()関数を使用してクリックスルーが新しいウィンドウで開かれます。

于 2012-12-03T15:45:29.327 に答える