Cordova Android应用中的Google发布商代码广告

时间:2012-11-29 16:10:25

标签: android cordova google-dfp

我正在开发Cordova 2.2.0框架中的Android应用程序,而且在使用基于GPT的广告进行点击时遇到了很多麻烦。 (当然我不是第一个尝试这个的人。)

GPT使用广告素材呈现友好的IFRAMES,主要包含<a href="http://www.example.com/clickthrough/yadayadayada" target="_blank">(ad creative)</a>

在浏览器和iOS上,点击广告会在新的浏览器窗口中打开点击,这就是我想要在这里发生的事情。但是在我的Kindle Fire HD和Droid 4上的本机应用程序中,点击广告会打开IFRAME空间中的Clicktrough页面,这样您就可以在我的其他页面中显示页面的左上角320x50。

我已尝试编辑白名单,但这不是一个选项,因为广告素材可以来自任何地方(我们使用多个广告网络来填充我们的剩余广告),并且因为广告呈现在我无法控制的IFRAME中无法在javascript:window.open()中包装HREF,我还没有办法让Android Java代码拦截这些点击。

我也调查了AdMob,但我的老板不想改变我们的移动网站的广告体验,该网站有一到三个广告与页面滚动。

编辑能够在广告所在的网页上呈现AdMob视图,以便视图随网站滚动,可以正常工作。

如何在新窗口中打开这些点击次数?

感谢您的帮助。

1 个答案:

答案 0 :(得分: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内容,使用Cordova navigator.app.loadUrl()函数将点击打开到新窗口。