最近翻出来的关于统计页面广告点击详细情况的JS
作者:hayden 日期:2008-06-10
当前为行为层代码,相关入库的服务端代码在此就不列出来啦
我不是原作者,也不知道原作者是谁了,呵呵,根据我本人的需要,添加了一个判断,一个页面只提交第一次的广告点击数据,不重复提交的~
增加了部分注释,由于本人的几个版本IE浏览器都可以正常统计,却有朋友反应说IE6经常容易漏掉点击,关于这点,也无从测试起啊,希望有条件的朋友也可以用用,顺便看看在什么情况下漏掉了点击。
程序代码
我不是原作者,也不知道原作者是谁了,呵呵,根据我本人的需要,添加了一个判断,一个页面只提交第一次的广告点击数据,不重复提交的~
增加了部分注释,由于本人的几个版本IE浏览器都可以正常统计,却有朋友反应说IE6经常容易漏掉点击,关于这点,也无从测试起啊,希望有条件的朋友也可以用用,顺便看看在什么情况下漏掉了点击。
程序代码<SCRIPT LANGUAGE="JavaScript">
<!--
var adsrc = '';
var adlogger_loc = "http://mysuc.com";
var mytjtime = 0;
function ad_click () {
var srt = new Date().getTime();
if (mytjtime==0){
var ad_target_url = '';
ad_target_url = escape(window.status);
adlogger_url_image = new Image();
if(document.all) {adsrc = this.src;}
//通过地址GET方式提交相关信息
//spage 点击时的所在页面
//adpage 点击时链接的地址
adlogger_url_image.src = adlogger_loc + '/checks.asp?spage=' + escape(document.location.href) + '&adpage=' + escape(adsrc)+"&timeStamp=" + srt;
mytjtime++;
}
}
if(typeof window.addEventListener != 'undefined') {
window.addEventListener('load', adsense_init, false);
} else if(typeof document.addEventListener != 'undefined') {
document.addEventListener('load', adsense_init, false);
} else if(typeof window.attachEvent != 'undefined') {
window.attachEvent('onload', adsense_init);
} else {
if(typeof window.onload == 'function') {
var existing = onload;
window.onload = function(){
existing();
adsense_init();
};
} else {
window.onload = adsense_init;
}
}
function adsense_init () {
var mamaid=0;
if (document.all) {//在IE环境下
var el = document.getElementsByTagName("iframe");
for(var i = 0; i < el.length; i++) {
if(el[i].src.indexOf('googlesyndication.com') > -1||el[i].src.indexOf('overture.com') > -1||el[i].src.indexOf('alimama.com') > -1) {
el[i].onfocus = ad_click;
}
}
} else {//在非IE环境下
window.onunload = doPageExit;
window.addEventListener('mousemove', getMouse, true);
}
}
var px,py;
function getMouse(e) {
px=e.pageX;
py=e.clientY;
}
function findY(obj) {
var y = 0;
while (obj) {
y += obj.offsetTop; obj = obj.offsetParent;
}
return(y);
}
function findX(obj) {
var x = 0;
while (obj) {
x += obj.offsetLeft;
obj = obj.offsetParent;
}
return(x);
}
function doPageExit(e) {//在非IE环境下使用坐标范围判断鼠标点击位置
ad = document.getElementsByTagName("iframe");
for (i=0; i<ad.length; i++) {
var adLeft = findX(ad[i]);
var adTop = findY(ad[i]);
var inFrameX = (px > (adLeft - 10) && px < (parseInt(adLeft) + parseInt(ad[i].width) + 15));
var inFrameY = (py > (adTop - 10) && py < (parseInt(adTop) + parseInt(ad[i].height) + 10));
if (inFrameY && inFrameX) {
adsrc = ad[i].src;
ad_click();
}
}
}
//-->
</SCRIPT>
<!--
var adsrc = '';
var adlogger_loc = "http://mysuc.com";
var mytjtime = 0;
function ad_click () {
var srt = new Date().getTime();
if (mytjtime==0){
var ad_target_url = '';
ad_target_url = escape(window.status);
adlogger_url_image = new Image();
if(document.all) {adsrc = this.src;}
//通过地址GET方式提交相关信息
//spage 点击时的所在页面
//adpage 点击时链接的地址
adlogger_url_image.src = adlogger_loc + '/checks.asp?spage=' + escape(document.location.href) + '&adpage=' + escape(adsrc)+"&timeStamp=" + srt;
mytjtime++;
}
}
if(typeof window.addEventListener != 'undefined') {
window.addEventListener('load', adsense_init, false);
} else if(typeof document.addEventListener != 'undefined') {
document.addEventListener('load', adsense_init, false);
} else if(typeof window.attachEvent != 'undefined') {
window.attachEvent('onload', adsense_init);
} else {
if(typeof window.onload == 'function') {
var existing = onload;
window.onload = function(){
existing();
adsense_init();
};
} else {
window.onload = adsense_init;
}
}
function adsense_init () {
var mamaid=0;
if (document.all) {//在IE环境下
var el = document.getElementsByTagName("iframe");
for(var i = 0; i < el.length; i++) {
if(el[i].src.indexOf('googlesyndication.com') > -1||el[i].src.indexOf('overture.com') > -1||el[i].src.indexOf('alimama.com') > -1) {
el[i].onfocus = ad_click;
}
}
} else {//在非IE环境下
window.onunload = doPageExit;
window.addEventListener('mousemove', getMouse, true);
}
}
var px,py;
function getMouse(e) {
px=e.pageX;
py=e.clientY;
}
function findY(obj) {
var y = 0;
while (obj) {
y += obj.offsetTop; obj = obj.offsetParent;
}
return(y);
}
function findX(obj) {
var x = 0;
while (obj) {
x += obj.offsetLeft;
obj = obj.offsetParent;
}
return(x);
}
function doPageExit(e) {//在非IE环境下使用坐标范围判断鼠标点击位置
ad = document.getElementsByTagName("iframe");
for (i=0; i<ad.length; i++) {
var adLeft = findX(ad[i]);
var adTop = findY(ad[i]);
var inFrameX = (px > (adLeft - 10) && px < (parseInt(adLeft) + parseInt(ad[i].width) + 15));
var inFrameY = (py > (adTop - 10) && py < (parseInt(adTop) + parseInt(ad[i].height) + 10));
if (inFrameY && inFrameX) {
adsrc = ad[i].src;
ad_click();
}
}
}
//-->
</SCRIPT>
发表评论

文章来自:
Tags: