一、為什么要使用GA監(jiān)測(cè)商務(wù)通等在線客服的對(duì)話數(shù)?
主要是為了有效的區(qū)分對(duì)話的來源。本來呢,這個(gè)事情應(yīng)該是在線客服服系統(tǒng)去做。如果想要有效的區(qū)分一個(gè)流量的來源,需要Landing page URL和referer配合才可以。目前大部分在線客服系統(tǒng)對(duì)這方面的支持都不是那么好,而對(duì)于GA等網(wǎng)站分析工具,在區(qū)分流量來源這方面做的則比較好。 因此,產(chǎn)生了這樣的需求,用GA來跟蹤在線客服的對(duì)話數(shù)。
二、跟蹤的基本思路
這個(gè)的跟蹤思路其實(shí)與出站點(diǎn)擊、文件下載的思路一致,就是在點(diǎn)擊對(duì)話窗口時(shí)運(yùn)行_trackPageview或者_(dá)trackEvent記錄下來就 可以了。但是,有一點(diǎn)不同是,對(duì)話窗口一般都是通過JS動(dòng)態(tài)輸出的,因此,我們需要通過在Dom樹上查找到對(duì)應(yīng)的元素,并添加事件監(jiān)聽,當(dāng)用戶點(diǎn)擊對(duì)話按 鈕時(shí),則調(diào)用_trackPageview或者_(dá)trackEvent記錄。
這里比較麻煩的是從Dom樹里找到要監(jiān)聽onclick事件的對(duì)象。
三、具體的跟蹤實(shí)例
先介紹一個(gè)函數(shù)。
function startListening (obj,evnt,func) {
if (obj.addEventListener) {
obj.addEventListener(evnt,func,false);
} else if (obj.attachEvent) {
obj.attachEvent("on" + evnt,func);
}
}
這個(gè)主要是用來搞定瀏覽器兼容性。
這里有三個(gè)參數(shù):
obj:要添加事件監(jiān)聽的對(duì)象。
event:要監(jiān)聽的事件,不需要寫on。
func:捕捉到事件后要運(yùn)行的函數(shù)。這里要注意的是,func只需要寫函數(shù)名,而不需要(),其含義是當(dāng)對(duì)應(yīng)事件發(fā)生了,運(yùn)行函數(shù),而不是函數(shù)的結(jié)果。
這個(gè)函數(shù)還有許多用途,比如監(jiān)測(cè)頁面內(nèi)所有鏈接的點(diǎn)擊情況,跟蹤出站鏈接等等。
接下來首先是找到要監(jiān)聽的事件對(duì)象。
首先,我用firebug查看輸出的對(duì)話窗口,找到這兩個(gè)圖片所在的位置。
table id=”LR_Tb4″ align=”center” cellspacing=”0″ cellpadding=”0″ style=”WIDTH: 400px; HEIGHT: 104px;border:0;margin:0; padding:0;”>,輸入這個(gè)table下面的兩個(gè)a標(biāo)簽。
var table1=document.getElementById("LR_Tb4")
var links=table1.getElementsByTagName("a")
通過ID和tagName我們定位了這兩個(gè)a標(biāo)簽。
接下來就是定義要運(yùn)行的函數(shù)。
function textacc(){
alert("接受")
_gaq.push(['_trackPageview','/商務(wù)通/接受']);
}
function textre(){
alert("拒絕")
_gaq.push(['_trackPageview','/商務(wù)通/拒絕']);
}
為了測(cè)試,我添加了兩個(gè)alert。
最后,是為這兩個(gè)按鈕添加事件監(jiān)聽,當(dāng)按鈕發(fā)生點(diǎn)擊事件時(shí),調(diào)用對(duì)應(yīng)的函數(shù)。
至此,基本的監(jiān)測(cè)代碼就完整了。
最后一步就是在GA中定義對(duì)應(yīng)目標(biāo)了。
四、一些注意事項(xiàng)
1、在線客服系統(tǒng)提供多種咨詢圖標(biāo),不同的咨詢圖標(biāo),需要監(jiān)聽的對(duì)象不同,比如,我看到的商務(wù)通,有兩種圖標(biāo)。
2、商務(wù)通系統(tǒng)的加載比較慢,為避免由于商務(wù)通加載未成功而造成的錯(cuò)誤,可以將這些監(jiān)測(cè)代碼作為一個(gè)函數(shù),在window onload完成的時(shí)候去運(yùn)行。
3、這種方式只能監(jiān)測(cè)用戶是否點(diǎn)擊咨詢按鈕,但是,無法確定是否是有效咨詢。
4、如果在線客服使用的是Flash形式,這種方法無效。
五、完整的代碼示例
function trackChat(){
if (document.getElementById("LR_Tb4")){
var table1=document.getElementById("LR_Tb4")
var links=table1.getElementsByTagName("a")
startListening(links[0],"click",textacc);
startListening(links[1],"click",textre);
}
if (document.getElementById("LRfloater0")){
var _divchat=document.getElementById("LRfloater0")
var _imgchat=_divchat.getElementsByTagName("img")
startListening(_imgchat[1],"click",textacc);
}
}
startListening(window,"load",trackChat);
function startListening (obj,evnt,func) {
if (obj.addEventListener) {
obj.addEventListener(evnt,func,false);
} else if (obj.attachEvent) {
obj.attachEvent("on" + evnt,func);
}
}
function textacc(){
_gaq.push(['_trackPageview','/商務(wù)通/接受']);
}
function textre(){
_gaq.push(['_trackPageview','/商務(wù)通/拒絕']);
}