我的问题不像这个:Browser-independent way to detect when image has been loaded
我的网站上有广告,我的每次展示都获得了付费,现在最近我看到每个广告获得的展示次数大幅下降,但是我的平均点击量/月份却有所增加。我是否可以检测是否已加载图像,或者是否已加载404(与廉价广告拦截器相同)等内容?
答案 0 :(得分:2)
你现在怎么样?根据您的问题判断,我怀疑您正在解析服务器日志,或者图像是通过动态网址提供的。如果是这种情况,那么丢弃可能是由客户端或代理缓存引起的。用户正在查看广告,但请求永远不会到达您的服务器。
显而易见的解决方案是禁用缓存,但这对访问者来说非常粗鲁。现在常见的方法是使用1px GIF作为信标来计算广告。 JS也会起作用,但是当JS被禁用时你会失去命中率。
<div id="ad">
<img src="/real.gif?ad_id=3435">
<img src="/beacon.php?ad_id=3435&random=6354377">
</div>
BTW:如果计数是由广告提供商完成的,那么他们总是有可能撒谎。营销人员通常不是最诚实或最有原则的人。
答案 1 :(得分:0)
广告拦截器通常不是“戏剧性下降”的原因......
您可以添加将“ping”您的广告图片服务器的JavaScript,或者您可以检查您要加载的图片......两者都非常容易实现,但如果失败则会分散合法用户。例如,我讨厌当页面挂起时,因为有人收集了staistics并在onunload事件中向服务器发送请求......
答案 2 :(得分:0)
加载图像时,IE上的图像标记添加了“完整”属性。 您还可以在图像上收听“加载”和“错误”事件。
答案 3 :(得分:0)
一种方法是使用Ajax使用图像的onload事件记录图像加载。如果以相同的方式加载日志页面,则可以将页面加载与成功加载图像的页面加载进行比较。
<img src="..." onload="logMe(this)" />
function logMe(img) {
now = new Date()
src = this.src
....your Ajax code that writes to the server log.
}
答案 4 :(得分:0)
1。)图片有一个onload事件......你可以看到这是什么时候被触发。
2。)您可以使用DOM / JS查看图像上的属性是否存在并且符合您的期望。
3。)请注意,如果图片没有唯一路径,或者提供缓存,浏览器将不会重新获取图像(因此重复访问不会重新加载图像)< / p>
根据记录,如果您获得每次/印象付费,那么您很幸运。大多数系统只关心命中。因此,如果加载图像,则意味着什么......但如果用户点击它,则会有补偿。