[导读]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
上一篇
发表评论