目前很多網頁技術為了節省空間以及效能上的考量,會大量使用 Ajax 方式在同一個頁面撈取資料,頁籤尤其是最常使用的例子,Google 流量分析是絕大多數網站用來統計流量的工具,如何做到 Ajax 撈取資料時也可以同時列入 Pageview 呢,方式如下。
我們以 jQuery 的 Tabs 為例:
<!DOCTYPE HTML> <html lang="en"> <head> <meta charset="UTF-8"> <title>Tabs</title> <link media="all" rel="stylesheet" href="css/smoothness/jquery-ui-1.8.16.custom.css" type="text/css" /> <script src="js/jquery-1.6.2.min.js" type="text/javascript"></script> <script src="js/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { $('#tabs').tabs({ select: function(ev, ui) { window.location.hash = ui.tab.hash; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview', window.location.href]); } }); }); </script> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _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> </head> <body> <div id="tabs"> <ul> <li><a href="#content1">content 1</a></li> <li><a href="content2.html" title="content2">content 2</a></li> <li><a href="#content3">content 3</a></li> </ul> <div id="content1">content 1</div> <div id="content3">content 3</div> </div> </body> </html>
原理很簡單,當選取了 tabs 之後,再次觸發 GA 的 track 功能,我先將 anchor 還原回去 url,再將 url 變數塞進 trackPageview
的變數裡面,你或許不想將 anchor 放置於超連結頁面,但這也代表你每點選一次就要自己指定網址一次,所以讓他自己去抓取是最方便的,當然,已經加上 anchor 了照理說應該也不用塞網址進變數,但我怕會有 lag 情況,這樣可以買雙保險。
沒有留言:
張貼留言