[英]Can i redirect the google analytics snippet to my Server?
我需要在我的網站http://www.example.com上實施網絡分析。 我發現可以將Google的分析代碼段添加到我網站的“ footer.php”中,這將觸發Google的ga功能,從而提供分析儀表盤等。
我必須知道是否可以更改JavaScript代碼段以將數據重定向到服務器,以獲取原始數據並進行處理。
編輯:我通過谷歌搜索找到了下面的這段代碼。 但是我對JavaScript初學者一無所知,因此無法理解它的實際作用。
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXX-YY', 'auto');
// START remote backup of GA data request for Angelfish
ga(function(tracker) {
var originalSendHitTask = tracker.get('sendHitTask');
tracker.set('sendHitTask', function(model) {
var payLoad = model.get('hitPayload');
originalSendHitTask(model);
var gifRequest = new XMLHttpRequest();
// Send __ua.gif to a remote server
var gifPath = "https://www.your-domain.com/__ua.gif";
gifRequest.open('GET', gifPath + '?' + payLoad, false);
gifRequest.send();
});
});
// END remote backup of GA data request for Angelfish
ga('send', 'pageview');
</script>
您可以通過添加到sendHitTask來重定向數據,這實際上在GA文檔中通過示例進行了說明 :
ga('create', 'UA-XXXXX-Y', 'auto');
ga(function(tracker) {
// Grab a reference to the default sendHitTask function.
var originalSendHitTask = tracker.get('sendHitTask');
// Modifies sendHitTask to send a copy of the request to a local server after
// sending the normal request to www.google-analytics.com/collect.
tracker.set('sendHitTask', function(model) {
originalSendHitTask(model);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/localhits', true);
xhr.send(model.get('hitPayload'));
});
});
ga('send', 'pageview');
問題的第二部分(如何處理)在這里要廣泛回答。
終於找到了答案,這要感謝@Eike Pierstorff。
首先,我將以下腳本附加到網站footer.php的</body>
標簽之前
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXX-Y', 'auto');
ga(function(tracker) {
// Grab a reference to the default sendHitTask function.
var originalSendHitTask = tracker.get('sendHitTask');
// Modifies sendHitTask to send a copy of the request to a local server after
// sending the normal request to www.google-analytics.com/collect.
tracker.set('sendHitTask', function(model) {
originalSendHitTask(model);
var payLoad = model.get('hitPayload');
var xhr = new XMLHttpRequest();
var gifPath = 'http://YourPath/process_ga_data.php';
xhr.open('GET', gifPath + '?' + payLoad, false);
xhr.send();
});
});
ga('send', 'pageview');
</script>
在將Google Analytics(分析)有效負載推送到的服務器中,編寫了以下PHP代碼,以將所有參數作為數組提取到Output.txt中。
if (isset($_REQUEST))
$req_dump = print_r($_REQUEST, TRUE);
$file = file_put_contents('output.txt', $req_dump.PHP_EOL, FILE_APPEND);
fclose($file);
但是,仍然沒有列出所有的“ 測量協議”參數,我必須對其進行進一步配置。
PS,一旦我找到一種獲取所有參數的方法,我將編輯此答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.