DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> 用AJAX跟蹤Google Adsense廣告點擊
用AJAX跟蹤Google Adsense廣告點擊
編輯:AJAX詳解     

功能
可以完整詳細地獲得每一個用戶點擊廣告的數據。包括點擊時間,用戶的IP,頁面來源地址,被點擊的廣告網站地址,如果你的站點上保存了用戶cookIE的話,甚至可以查詢到是哪位用戶點了你的廣告
用純客戶端Javascript代碼和AJax技術實現點擊監聽和向服務端發送點擊數據,服務端我用的是ASP腳本,只是用來保存點擊數據和提供浏覽器端的點擊查詢,可以更換為其他服務端腳本,如PHP,JSP等
數據保存方式為了簡單,我用純text文本保存,一行保存一條數據,數據字段用逗號分隔,這樣方便用戶將這個文本另存為csv格式,csv就能用Excel打開了。
查看廣告點擊數據可設訪問密碼
安裝和使用
下載這個文件解壓出裡面的adLog.ASP文件
用記事本打開adLog.ASP找到如下幾行:


Const TextFile = "adLog.txt" '保存點擊數據的text文件,是相對路徑,可以修改

Const AccessPassWord = "adLog" '查看點擊時的訪問密碼,可以自行設定,如果無需身份認證,請將AccessPassWord值改為""即可

Const SessionName = "google_ad_logger" 'Session名稱,用來保存訪問密碼到指定Session中

Const WebCharset = "utf-8" '網站的編碼類型,如果是GB-2312,請自行修改

Const UserName = "username" '用戶名cookie,如果你的站沒有用戶cookIE,就不用管了
可以根據自己實際需要修改其值
修改完畢後將文件上傳到你的web站點上,任何路徑下都可以。這裡注意:如果你的編碼是gb-2312,請將文件用記事本打開,並選擇另存為,將編碼改回為ANSI。
修改你投放了google廣告的頁面文件,將以下代碼插入你的頁面任意位置:

將其中的頁面路徑修改為你自己實際的地址
安裝完畢以後頁面就自動開始跟蹤廣告點擊了
查看點擊數據你可以上FTP直接下載你指定的文本文件查看,或者訪問http://www.example.com/adlog.ASP
技術原理
其實這也不是什麼高深技術,原理及其簡單,主要核心功能都是在客戶端Javascript中。

通過查看發現google的廣告代碼全部放在一個iframe中。所以首先通過document.getElementsByTagName("iframe")得到頁面中所有iframe標簽的元素集保存到一個數組中
然後遍歷數組檢查iframe.src值是否包含有"googlesyndication.com"這串字符串,如果有就認為這個iframe是google的廣告顯示iframe
得到google顯示廣告的iframe後給這個iframe增加一個onfocus事件,這個事件就是當元素獲得焦點時觸發的事件
在onfocus事件中檢查window.status的值,也就是狀態欄顯示的字符串,如果匹配"go to"和"鍵連至"這幾個字符串就提取中網址地址,這個地址就認為是被點擊的廣告網址
利用AJAX立即將用戶的點擊數據POST到服務端紀錄下來,這裡的AJax無需再響應服務端傳回的數據了,只管發送出去即可
幾個核心代碼
編寫過Windows程序的朋友一定知道微軟的Visual Stdio中包含有一個Spy的小工具,這個小工具中就有一個功能用來監聽某個窗口句柄的所有觸發事件,用起來很爽,我在寫這個廣告紀錄器時也自己實現了一個網頁上用的Spy,代碼如下:






我就是用這種方法查看iframe上觸發的事件,查看後發現鼠標單擊iframe時能接收到的事件中有onbeforeactivate、onactivate、onfocusin、onfocus這四個,我就挑了onfocus來監聽用戶點擊的
AJax部分我用的是XHCom組件,小巧靈活簡單,很好使。
前面講解安裝時我特意說過包含js的代碼可以放在網頁的任意位置,這裡我用的是一個稱作domFunction的JS組件,這個組件可以實現循環查詢DOM對象,直到發現DOM裝載入頁面並有效後再執行代碼,相當於document.onload事件的作用,google adsense的廣告有時候會顯示很慢,用了這個Dom檢查程序就可以保證每次頁面裝載都能查找到google的iframe,萬無一失,也方便了用戶添加代碼時無需考慮位置的影響了。
按理,這個程序應該寫成一個ASP外加一個JS兩個文件,但是看了Andy兄介紹的《單頁面應用程序》這篇文章,很是欣賞,所以特意將兩個文件合寫到一個文件中了
服務端保存和讀取文本文件的內容時,我用的分別是FSO和ADODB.Stream,如果你的站點不支持這些組件,請和我聯系,我改寫其他方式
遺憾
最遺憾的是這個程序只能用在IE下啟作用,Firefox下無法跟蹤用戶點擊操作,原因是Firefox中ifrmae根本觸發不了任何用戶操作事件,去Mozilla上查資料,官方說明了用document.getElementById("iframe").contentWindow這個對象,但是我嘗試後還是毫無作用,只好作罷,等待高人解決。
最慚愧的是我怎麼也找不到在onfocus事件中判斷用戶鼠標左右鍵的方法,在iframe上點擊鼠標右鍵也會觸發事件的,程序會被認為一次有效的用戶點擊,這個問題一定要改改的。
Demo和下載
如果想立即查看下程序實際運行,我特意提供了一個demo文件:http://www.duduwolf.com/test/adLogDemo.ASP,這個文件沒有設訪問密碼,任何人都能查看點擊數據,你也可以通過裝載這串代碼立即從你的網站上實現點擊跟蹤,只不過點擊後的數據是保存在我的網站上並且是公開的。

下載源文件:Google Adsense Click Logger

在線查看源代碼:查看源代碼(utf-8,如果顯示亂碼請修改當前頁面編碼)


這個程序我自己用了好幾天了,遲遲沒有發布出來就是擔心大量應用後google估計就會修改google adsense代碼了,還有就是我不知道這樣做是不是違背了google廣告的保留條款,仔細查看後發現有這樣一條

Google 嚴禁以任何手段人為提高點擊次數或網頁展示次數,並通過工程系統和人工分析對行為進行密切監控。
所以希望大家只是拿來當技術研究,切勿長時間靠這個跟蹤客戶點擊,雖然目前這個程序不影響任何adsense投放和點擊後的動作和行為,但是如果有一天google的工作人員親自上你的站點研究代碼就全暴露了。我blog上的數據也統計了好幾天,基本和google提供的統計數據差不多,因為我的blog上有用戶留言的cookie,所以我特意保存了用戶名,想看看每天都是誰在點擊我的廣告,統計後發現點擊我廣告的人都沒在blog中留言,在blog中留言保存了cookIE的用戶從來不點擊廣告

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved