2017-10-11 115 views
1

我試圖在客戶端的Google分析中觸發一個事件。當用戶點擊另一個網站的鏈接時,需要觸發該事件。放置在onclick中的函數調用在桌面上不起作用,因爲在Javascript可以運行之前頁面已經被卸載。爲了解決這個問題,我實現了基於this article下面的代碼:谷歌Analytics(分析)ga函數hitCallback沒有觸發

<script> 
    function submitOrderButtion(eventName){ 
    var url = 'https://example.com'; 
    var goToOrderForm = function(){ 
     console.log("goToOrderForm"); 
     window.location = url; 
    }; 
    //setTimeout(goToOrderForm, 1000); 
    console.log(ga.q); 
    console.log(ga.loaded); 
    ga('set', 'transport', 'beacon'); 
    ga('send', 'event', 'order online', 'click', eventName, { 
     hitCallback: goToOrderForm 
    }); 
    } 
</script> 

調用該函數的聯繫是這樣的:

<a href="javascript:" onclick="submitOrderButtion('homepage');" class="btn btn-primary">Order Online!</a> 

單擊該按鈕時,ga函數永遠不會做任何事情。

ga.q未定義,ga.loaded爲true。我最後一次嘗試將交通工具設置爲「燈塔」,但沒有任何區別。除非我取消註釋setTimeout(我最終會在這種情況下工作),否則回調從不會被調用,ga事件從不記錄,並且檢查器中也沒有任何網絡請求出現。

這是鏈接到網站Joey's Pizza。有問題的鏈接是頁面中間顯示「訂購在線!」的大按鈕。

有誰能告訴我爲什麼GA功能沒有做任何事情嗎?在此先感謝您的幫助!

狀態更新: 我仍然在尋找對此的答案。我得到的答案已經多次嘗試過(使用各種arg配置,並檢查源代碼以確保先前的嘗試沒有被緩存)。我花了將近一天的時間完成了一項簡單的任務,我沒有收到任何錯誤或任何問題。任何進一步的幫助將非常感激!謝謝:)

回答

0

傳遞迴調作爲第五個參數

https://developers.google.com/analytics/devguides/collection/analyticsjs/sending-hits#hitcallback

因此,它應該是這樣的。

ga('send', 'event', 'order online', 'click', { 
    hitCallback: goToOrderForm 
}); 
+0

我試過了。我也嘗試使用此處給出的簽名:https://developers.google.com/analytics/devguides/collection/analyticsjs/events。爲eventValue傳遞null因爲我不需要它。到目前爲止沒有運氣。 – drigby