用AJAX跟蹤Google Adsense廣告點選

來源:互聯網
上載者:User
adsense|ajax|google|廣告

功能
可以完整詳細地獲得每一個使用者點擊廣告的資料。包括點擊時間,使用者的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的使用者從來不點擊廣告




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.