2016-02-02 70 views
0

我意識到類似的職位已經解決了這個問題,但除了AJAX模式的附加元素似乎沒有解決,我相信這是我的問題。所以,我在我的網站上有一個模式表單。表單的按鈕位於標題內。我試圖讓Google Analytics(分析)跟蹤何時提交表單。谷歌分析跟蹤在模式內的AJAX形式

見阿賈克斯在這裏:

$(document).ready(function() { 
$('form').submit(function(e){ 
    e.preventDefault(); 
    var f = $('#modalForm'); 
    $.ajax({ 
     type: "POST", 
     url: "mail/modalFormSubmit.php", 
     success: function(){ 
     $('form').hide(); 
     $("#modalSignup").html("<p><i class='fa fa-check'></i> Thank you for contacting us!</p>"); 
     _gaq.push(['_trackEvent', 'Goal', 'submit', 'Modal Submit']);    
     }, 
     data: f.serialize() 
    }); 
});  
}); 

我已經添加了模型中的GA跟蹤代碼在這個時候,當我將其直接插入標頭,我只要從網站上的其他網頁誤報:

<!-- Modal --> 
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
<div class="modal-dialog" role="document"> 
<div class="modal-content"> 
    <div class="modal-header"> 
    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
    <h4 class="modal-title" id="myModalLabel">Quality Products and Solutions</h4> 
    </div> 
    <div class="modal-body"> 
    <form id="modalForm" name="modalForm" method="post" action=""> 
       <label>Name <span class="color-red">*</span></label> 
       <div class="row margin-bottom-20"> 
        <div class="col-md-7 col-md-offset-0"> 
         <input type="text" name="name" class="form-control" required> 
        </div>     
       </div> 

       <label>Email <span class="color-red">*</span></label> 
       <div class="row margin-bottom-20"> 
        <div class="col-md-7 col-md-offset-0"> 
         <input type="email" name="email" class="form-control" required> 
        </div>     
       </div> 

        <label>City <span class="color-red">*</span></label> 
       <div class="row margin-bottom-20"> 
        <div class="col-md-7 col-md-offset-0"> 
         <input type="text" name="city" class="form-control" required> 
        </div>     
       </div> 

       <label>State <span class="color-red">*</span></label> 
       <div class="row margin-bottom-20"> 
        <div class="col-md-7 col-md-offset-0"> 
         <input type="text" name="state" class="form-control" required> 
        </div>     
       </div> 

       <label>Phone Number </label> 
       <div class="row margin-bottom-20"> 
        <div class="col-md-7 col-md-offset-0"> 
         <input type="tel" name="tel" class="form-control" required> 
        </div>     
       </div> 

       <label>Message <span class="color-red">*</span></label> 
       <div class="row margin-bottom-20"> 
        <div class="col-md-11 col-md-offset-0"> 
         <textarea rows="8" name="message" class="form-control" required></textarea> 
        </div>     
       </div> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
       <button type="submit" class="btn-u">Send Message</button> 


      </form> 
     <div id="modalSignup"></div> 
     <script type="text/javascript"> 
     var _gaq = _gaq || []; 
     _gaq.push(['_setAccount', 'xxxxxx']); removed for Stack overflow submittal 
     _gaq.push(['_trackPageview']); 

     (function() { 
     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
        })(); 
     </script> 


    </div> 
    </div> 
    </div> 
    </div>  

我確定我甚至不需要模態內的跟蹤代碼,但我嘗試儘可能多的變量。我再次道歉,如果這是多餘的,但我無法找到解決這個具體問題的網站上的任何東西。

+0

跟蹤代碼應該在''標籤開始之後。有'_gaq.push(['_ trackPageview']);'在''的開頭和模態會導致2頁面視圖被記錄(你的誤報?)。至於提交表格和跟蹤事件,這對我來說看起來是正確的。重要的是在''標籤的開始處有一次跟蹤代碼。那麼你只需要'_gaq.push(['_ trackEvent','目標','提交','模態提交']);'代碼,因爲它已經在你的表單提交成功。 – cschaefer

+0

如果我只是將跟蹤代碼保留在模式中,但是從中刪除了'_gaq.push(['_ trackPageview']);'?如果沒有將綜合瀏覽量推入GA,這會不會讓它跟蹤? –

+0

這將是多餘的。根據Google Analytics(分析)**在開始標記後立即將跟蹤代碼添加到每個模板頁面:**。所以,你應該只在那個位置和那個位置。然後,您可以使用_gaq.push發送頁面視圖或任何您想要的事件。 – cschaefer

回答

0

代碼和邏輯看起來正確。這裏有一些想法:
1.你確定成功函數在表單提交時觸發嗎?
2.模式來自哪裏,它已經在頁面上並被隱藏/顯示,或者它是遠程加載的?如果是後者,它可能不知道在父頁面中設置的變量。
3.當窗體上的回調運行時,_gaq可能不會被定義。你是否檢查過控制檯中的錯誤或在成功函數中設置斷點以查看發生了什麼?

+0

1.成功功能正在觸發,表單提交給電子郵件。你可以在這裏看到這個表單[鏈接](http://rocktred.com/index.php),目前它只提交給我自己。 2.模態位於標題中,並在點擊「請求報價」按鈕時出現。 _gaq應該在我上面實現的跟蹤代碼中定義,其中調用了ajax。在AJAX調用中沒有定義_gaq是否重要? –

+0

看了一下網站並提交了一個測試表單,成功函數就是觸發並且_gaq被定義。不過,我懷疑問題在於如何在頁面上設置Google Analytics。較新的ga('send','pageview')和舊的_gaq.push('_ trackPageview')也使用相同的帳號。你是否獲得雙頁面瀏覽量?我會嘗試使用ga('發送','事件','目標','提交','模態提交');我不確定這種語法。 –