Google AdSense JavaScript导致多个页面加载?

时间:2011-07-15 21:47:23

标签: javascript asp.net-mvc iis-7.5 adsense

4 个答案:

答案 0 :(得分:4)

Mediabot是Google用于抓取网页以分析内容的网页抓取工具的名称,因此Google AdSense可以向网页提供与内容相关的广告。

根据我的经验,这是不可预测的,是的,它可能非常heavyannoying

如果您不希望Mediapartner bot访问特定页面,您可以在robots.txt中禁止它:

#
# disallow adsense bot
#
User-agent: Mediapartners-Google
Disallow: path to your specific page

这将具有来自该特定页面的服务非目标广告的缺点。

如果您看到此模式始终位于具有不同查询字符串的同一页面上,则添加canonical rel可以减轻这种痛苦。

如果您无法解决此问题,并将其视为滥用行为,请不要在Crawling Indexing and Ranking Google support中寻求帮助。

答案 1 :(得分:1)

鉴于您所观察到的行为似乎难以避免,我们是否可以专注于解决方法?

您可以根据UserAgent区分请求,从而过滤掉请求。 这对你来说可行吗? 如果是这样,那么你可以基于这种方法:http://blog.flipbit.co.uk/2009/07/writing-iphone-sites-with-aspnet-mvc.html 他们在这里检测iPhone,但是对于Mediapartners-Google bot来说,这个概念是相同的。

答案 2 :(得分:0)

除了嵌入AdSense代码本身之外,有两件与AdSense相关的内容在您的两个测试用例中有所不同:

  1. !HttpContext.Current.IsDebuggingEnabled时会发生什么?这似乎是事实上的生产标志;也许还有一些其他的细微差别正在发生,这取决于同一面旗帜。

  2. Html.RenderPartial("AdSense_XXXXXX")是否有可能导致Controller跳回执行的开始?

  3. 根据您的描述,似乎执行在服务器上发生了两次,但只有一个请求从客户端发送。这意味着服务器错误,这两行是您触发AdSense的关键。要进一步缩小范围,请尝试直接嵌入AdSense部分,而不是调用Html.RenderPartial()。如果这不会改变结果,那么可能值得对HttpContext.Current.IsDebuggingEnabled上的其他开关进行健全性检查。

    如果失败,了解您的服务器端日志记录是在接收到请求,发送响应之前还是在发送响应之后进行的,都可能会有所帮助。

答案 3 :(得分:0)

是的,我刚刚在与合作伙伴的TeamView会话中检测到这一点。在我的方框中,我的主页面仅为我的网站每个请求加载一次。

然后巧合的是,在使用Fiddler时,我的合作伙伴正在向样本页面收到4个请求。它是一个1.5 MB的页面,包含大脚本和许多其他依赖项,所以这真的是一个WTF时刻,因为我在15年的Web开发中从未见过这样的东西。

如果谷歌这样做,我必须说他们应该意识到今天的网站可能有非常大的网页和非常大的观众。这可能意味着他们每个请求的带宽增加了4倍。就像我说的,WTF ?????

我希望这个Q& A有更明确的解决方案。 我确实使用谷歌翻译小部件,但这只发生在他的盒子和主页面上。其他页面也使用翻译小部件,我通过谷歌CDN请求我的JQUERY。谷歌可以做任何事吗。