2016-04-22 52 views
0

我試圖跟蹤用戶何時點擊聯繫表單上的提交按鈕。
頁面的網址不變,它的靜態。
我無法在提交後跟蹤不同的URL,唯一的選擇是跟蹤用戶何時點擊提交按鈕。如何在表單提交上設置Google Analytics上的事件跟蹤?

我需要編輯我的分析帳戶嗎?
我在哪裏添加額外的JavaScript?
UA正確安裝(analytics.js)
我是GA和JavaScript的新手,請將它分解給我。

感謝

+0

它在手冊中:https://developers.google.com/analytics/devguides/collection/analyticsjs/events – Asken

回答

3
I can't track a differnt URL after submission, the only option would be to track when a user hits the submit button. 

這是一個有點瞎猜的。即使Url沒有改變,也可能有一些東西發生 - 在你發送它之前,可能有一些表單驗證,並且在場景後面有一些動作發送,例如ajax調用。

你可以把事件追蹤到提交處理程序:

<form onSubmit="ga('send','event','category','action','label')"> 
<input type="text" id="text" name="text"> 
<input type="submit"> 
</form> 

然而,這隻會告訴你,有人點擊提交按鈕,而不是他們是否在表格填寫正確,或者如果形式實際上已經發送。

現在我進入投機地,因爲我不知道你的表單實際上是如何工作的 - 也許你可以給我們看一個網址或提供更多信息。

但是,也許你有一個驗證函數在窗體的提交操作上調用,以查看窗體是否被正確填充。在這種情況下,這將是最好做在驗證功能(可怕的簡化的例子,不是生產代碼)跟蹤:

<form onSubmit="validate()"><input type="text" id="text" name="text"><input type="submit"></form> 

<script> 
function validate() { 
var test = document.querySelector('#text').value 
if(test = "") { 
    ga('send','event','Form','Submit','Submitted, but not filled in'); 
    return false; 
} 
ga('send','event','Form','Submit','Submitted with correct values'); 
return true; 
} 
</script> 

這是一點點好,至少它跟蹤正確的意見和無效意見之間的差異。

甚至更​​多的猜測:如果你的表單發送時沒有頁面重新加載,它可能使用ajax調用,並且有很大的可能性是使用jQuery(我這樣說,因爲a)它很可能和b)更容易在jQuery中構建一個例子。如果你不使用jQuery,這個例子會產生一個錯誤)。

jQuery有一個叫做「全局ajax處理程序」的東西。 「全局」意味着它們不是針對特定動作的回調,只要對ajax函數進行調用,它們就會掛鉤到jQuerys ajax「機制」中。如果每個頁面只有一個aja事件(或者您需要邏輯來區分不同的ajax事件,例如通過檢查它們發送到的url),並且允許您跟蹤ajax調用是否已成功返回,就像當你的表單數據已被髮送到服務器,並請求返回2xx狀態代碼:

$(document).ajaxSuccess(function() { 
ga('send','event','Form','Submit','Yeah, form data sent to the server'); 
}); 

然而,這並不告訴你,如果該數據已被正確處理。爲此你需要讓服務器發出一個成功的消息,並檢查響應:

$(document).ajaxSuccess(function(event, xhr, settings) { 
    if (settings.url == "formprocessor.php") { 

     if(xhr.responseText.indexOf("success") > -1) { 
     ga('send','event','Form','Response Received','Form data processed '); 
     } else { 
     ga('send','event','Form','Response Received','Form data NOT processed '); 
     } 
    } 
}); 

全局AJAX事件處理程序附加到文件 - 你可以把你的頁面上的任何地方,它不會做任何事情,除非ajax事件被調用。

再次,這不是生產代碼。不要嘗試複製和粘貼。

如果你是新手,這當然有點多,但它至少應該幫助你改善問題,並且看看有什麼樣的可能。如果你可以分享一個網址到你的表格,我可以改善答案。

+0

謝謝!,這正是我想知道的,我也運行兩個GA屬性實例,onSubmit腳本中的數據是否會將數據發送到這兩個屬性? – RzK

+0

不需要。您需要創建指定的跟蹤器(在stackoverflow上的已命名跟蹤器上已經有一些帖子),並將這些調用發送到兩個跟蹤器實例。 –

+0

@RzK,使用命名的雙重跟蹤器的替代方法是使用將數據發送到多個帳戶的GA插件,好處是您只需要進行一次跟蹤調用,並且插件需要注意呼叫轉到兩個賬戶。例如。大衛瓦列霍在他的博客上開了一個小項目,也許你想幫忙(至少有建議):https://www.thyngster.com/universal-analytics-plugin-dual-tracking/。 –

相關問題