[导读]Google 并未向它的 Adsense 发布商提供详细点击统计,你无法知道用户在哪些页面点击了哪些链接。我们可以自己做一个统计程序,并且不违反 Google Adsense 的规则。如果你使用 ASP 程序,请将如下代码贴到你的 Google... Google 并未向它的 Adsense 发布商提供详细点击统计,你无法知道用户在哪些页面点击了哪些链接。我们可以自己做一个统计程序,并且不违反 Google Adsense 的规则。

如果你使用 ASP 程序,请将如下代码贴到你的 Google Adsense 代码下
<script type="text/javascript"> function log() {    if (window.status.indexOf('go to') == 0) {      bug = new Image();      bug.src = './g_count.asp?l=en&r=<%=Server.URLEnCode(Trim(LCase(Request.ServerVariables("HTTP_HOST")&Request.ServerVariables("URL")&"?"&Request.ServerVariables("QUERY_STRING"))))%>&u=' + window.status.substring(6);   }    if (window.status.indexOf('键连至') == 0) {      bug = new Image();      bug.src = './g_count.asp?l=cn&r=<%=Server.URLEnCode(Trim(LCase(Request.ServerVariables("HTTP_HOST")&Request.ServerVariables("URL")&"?"&Request.ServerVariables("QUERY_STRING"))))%>&u=' + window.status.substring(3);}  }  var elements;  elements = document.getElementsByTagName("iframe");  for (var i = 0; i < elements.length; i++) {    if(elements<i>.src.indexOf('googlesyndication.com') > -1) {      elements[i].onfocus = log;}  }  </script>

如果是静态页面,请使用这个代码
<script type="text/javascript"> function log() {    if (window.status.indexOf('go to') == 0) {      bug = new Image();      bug.src = './g_count.asp?l=en&r='+document.location+'&u=' + window.status.substring(6);   }    if (window.status.indexOf('键连至') == 0) {      bug = new Image();      bug.src = './g_count.asp?l=cn&r='+document.location+'&u=' + window.status.substring(3);}  }  var elements;  elements = document.getElementsByTagName("iframe");  for (var i = 0; i < elements.length; i++) {    if(elements[i].src.indexOf('googlesyndication.com') > -1) {      elements[i].onfocus = log;}  }  </script>

后边这段代码可能导致点击页面第二个及以后的参数无法记录。

数据库字段:
cgd_id 自动编号
cgd_page_url 文本 记录点击广告的页面地址
cgd_ad_url 文本 记录广告地址
cgd_ip 文本 用户IP
cgd_time 时间 点击时间

[I] g_count.asp 代码

<%Option Explicit '设置数据库链接 Dim cc_obj_conn_google,cc_str_conn_path,cc_str_conn_file,cc_str_conn_datebase,cc_bln_conn_google,cc_str_conn_google_datebase cc_bln_conn_google = False cc_str_conn_path = "./googlecount" '数据库目录 cc_str_conn_file = "count.mdb" '数据库文件名 cc_str_conn_google_datebase = "DBQ=" & Server.Mappath(cc_str_conn_path&"/"&cc_str_conn_file) & ";DRIVER={Microsoft Access Driver (*.mdb)};" Set cc_obj_conn_google = Server.CreateObject("ADODB.Connection") Dim cc_str_gc_page,cc_str_gc_ad,cc_str_gc_rs,cc_str_gc_lan '获取数据 cc_str_gc_page = LCase(Trim(Request.QueryString("r"))) cc_str_gc_ad = LCase(Trim(Request.QueryString("u"))) cc_str_gc_lan = LCase(Trim(Request.QueryString("l"))) If cc_str_gc_page <> "" And cc_str_gc_ad <> "" Then   If Len(cc_str_gc_page) > 120 Then cc_str_gc_page = Left(cc_str_gc_page,120)   If Len(cc_str_gc_ad) > 120 Then cc_str_gc_ad = Left(cc_str_gc_ad,120)   If Len(cc_str_gc_lan) > 10 Then cc_str_gc_lan = Left(cc_str_gc_lan,10)   '链接数据库   cc_obj_conn_google.Open cc_str_conn_google_datebase   If Err Then     Set cc_obj_conn_google = Nothing   Else     '写入数据库     Set cc_str_gc_rs = Server.CreateObject("ADODB.Recordset")     cc_str_gc_rs.Open "[count]",cc_obj_conn_google,1,3     cc_str_gc_rs.AddNew       cc_str_gc_rs("cgd_page_url") = cc_str_gc_page       cc_str_gc_rs("cgd_ad_url") = cc_str_gc_ad       cc_str_gc_rs("cgd_language") = cc_str_gc_lan       cc_str_gc_rs("cgd_ip") = Request.ServerVariables("REMOTE_ADDR")&","&Request.ServerVariables("HTTP_X_FORWARDED_FOR")       cc_str_gc_rs("cgd_time") = Now()     cc_str_gc_rs.Update     cc_str_gc_rs.Close     Set cc_str_gc_rs = Nothing   End If End If %>

不过这段代码会将每个点击记录2次,JS统计代码来自 adsenser.org