2013-11-02 2 views
4

웹 사이트에서 사용자 상호 작용을 추적하는 좋은 방법은 무엇입니까? 같은 그리고 나는 모든 것을 캡처 의미 :HTML5 + JS : 사용자 상호 작용 추적

  • 가 많이 커서
  • 투광를 입력
  • 물론

이동

  • 을 클릭
  • 스크롤 HTTP 포스트 /가 될 수 요청을받을 사용자에 대한 불쾌감. 사용자를 괴롭히지 않고 많은 데이터 손실없이이 작업을 수행 할 수있는 방법을 찾고 있습니다.

    누군가이 경험이 있기를 바랍니다.

  • 답변

    3

    면책 조항 : 그런 사용자에 대한 스파이 검색은 많은 사용자가 싫어하는 것이며 사용자가 정확히 무엇을하고 있는지 알지 못하도록하는 것이 좋습니다.

    즉, 모니터링하려는 이벤트에 이벤트 리스너를 추가 할 수 있습니다. 그런 다음 로컬로 먼저 저장하고 사용자가 지정한 간격으로 또는 사용자가 페이지를 떠날 때만 서버 측에 저장하십시오.

    var Spy = (function (register, undefined) { 
        var eventStore = [], 
         // you can also add other things like "mousemove" here… 
         events = ['click']; 
    
        var store = function (type, data) { 
         eventStore.push({ 
          type: type, 
          data: data 
         }); 
        }; 
    
        events.forEach(function (event) { 
         register(event, function (data) { 
          store(event, data); 
         }, false); 
        }); 
    
        return { 
         dump: function() { 
          console.log(eventStore); 
         }, 
    
         store: function() { 
          // do whatever you wanna do here… 
         } 
        }; 
    })(document.addEventListener); 
    

    은 분명히 당신이 addEventListener을 통해 등록 할 수있는 이벤트가 아닌 다른 일을 감시하는 더 추상화를 추가 할 수 있습니다 여기에 빠른 예 (: http://jsfiddle.net/8ucSV/ 바이올린)입니다. 나는 또한 여기서 브라우저 호환성에 대해별로 신경 쓰지 않았다.

    +0

    의견을 보내 주셔서 감사합니다.하지만 다른 페이지는 무엇이며 페이지를 닫아야합니다. HTTP 요청은 창 닫기 이벤트에서 완료 할 수 없습니다. – Tim

    +0

    현재 위치를 저장하여 데이터를 페이지와 연관시킬 수도 있습니다. 다른 문제에 관해서는 주기적으로 서버에 데이터를 보낼 수있을뿐만 아니라'localStorage'에도 저장할 수 있습니다. 그렇게하면 정욕은 고객에게 저장되고 다음에 웹 사이트를 방문 할 때 제공 될 수 있습니다. 마지막 덩어리 만 잃게됩니다. 시간이 중요하지 않은 경우에는 그곳에 저장할 수 있으며 웹 사이트를 방문 할 때마다 한 번만 보낼 수 있습니다. 그런 다음 한 번만 방문하는 사람들의 데이터를 잃어 버릴 수 있습니다. –

    +0

    나는 주로 한 번 방문자가 제품을 구입할 때가있다. 'localStorage'는 브라우저가 지원할 때 다중 페이지 문제를 해결할 것입니다. 고마워요.) – Tim