Google Analytics와 Baidu Statistics의 통계 데이터는 서로 다르며 그 차이가 매우 큽니다. 근본적인 이유는 데이터 통계의 원리와 메커니즘이 다르기 때문입니다. Google Analytics와 Baidu Statistics의 원리 분석을 공유해 보겠습니다.
Baidu 통계의 작동 원리 분석
Baidu Statistics에서 제공하는 JS는 기본적으로 hm.baidu.com/h.js의 코드를 페이지에 도입합니다. 코드 내용은 다음 매개변수에 따라 달라집니다. .바이두 통계의 id입니다.
h.js 코드를 얻는 동안 Baidu Statistics는 "HMACCOUNT"라는 쿠키를 브라우저에 기록합니다. 이 쿠키의 만료 시간은 2038년이므로 브라우저 쿠키를 삭제하지 않는 한 기본적으로 만료되지 않습니다.
h.js가 다운로드되면 해당 스크립트가 실행되어 일부 브라우저 관련 정보와 액세스 소스를 얻습니다. 얻은 정보에는 화면 크기, 색상 깊이, 플래시 버전, 사용자 언어 등이 포함됩니다.
js 코드의 모든 매개변수에는 "cc, cf, ci, ck, cl, cm, cp, cw, ds, ep, et, fl, ja, ln, lo, lt, nv, rnd, sb , se가 포함됩니다. , si, st, su, sw, sse, v”. 이러한 매개변수의 의미는 대략 다음과 같습니다.
cc: 모르겠음, 보통 1
cf:url 매개변수 hmsr의 값
ci:url 매개변수 hmci의 값
ck: 쿠키 지원 여부 1:0
cl: "32비트"와 같은 색상 깊이
cm:url 매개변수 값 hmmd
cp:url 매개변수 hmpl의 값
cw:url 매개변수 값 hmkw
ds: 화면 크기(예: '1024×768′)
ep: 초기 값은 페이지 체류 시간을 반영하는 시간 변수인 '0'입니다. 형식은 아마도 현재 시간 - 로딩 시간 + "," + 또 다른 작은 시간 값입니다.
et: 초기값은 '0'이며, ep time 변수가 0이 아니면 다른 값이 됩니다.
fl:플래시 버전
ja:java는 1:0을 지원합니다.
ln: 언어 zh-cn
lo: 모르겠음, 보통 0
lt: 날짜 time.time()(예: "1327847756"), 첫 번째 요청에서는 사용할 수 없음
NV: 잘 모르겠습니다. 보통 1 또는 0입니다.
rnd: 난수 10개
sb: 360se 브라우저라면 값은 '17' 입니다.
se: 검색 엔진 관련
si: 통계 코드 ID
성:
su: 이전 페이지 document.referrer
sw: 잘 모르겠습니다. 아마도 검색 엔진과 관련된 것 같습니다. 일반적으로 비어 있습니다.
sse: 잘 모르겠습니다. 검색 엔진과 관련된 것 같습니다. 일반적으로 비어 있습니다.
v: 통계 코드 버전, 현재 값은 "1.0.17"입니다.
이러한 매개변수가 모두 설정되면(일부 매개변수에는 값이 할당되지 않음) 할당된 매개변수를 필터링하고 이를 hm.baidu.com/hm.gif의 매개변수로 사용하여 http://upload와 같은 URL을 구성합니다. chinaz.com//?cc=1&ck=1&cl=32비트 & ds=1366×768&ep=0&et=0&fl=11.0&ja=1&ln=zh-cn. 그런 다음 이미지를 요청합니다.
Baidu 통계 서버는 이 요청을 수신하고 이미지의 URL에 첨부된 매개변수로부터 관련 정보를 얻어 사용자가 페이지를 닫을 때 방문자 액세스 기록을 기록하며 hm.gif에 대한 요청도 트리거합니다. 절차는 모든 브라우저에서 지원되지 않으며 모든 닫기 작업이 지원되는 것은 아닙니다.
Wireshark(네트워크 패킷 캡처 도구) 테스트를 사용하면 브라우저가 서버에 총 4개의 요청을 보낸 것을 확인할 수 있습니다.
js 스크립트를 요청하세요.
로드가 완료되면 요청을 시작하고 매개변수를 전달합니다.
페이지를 종료할 때 요청을 하고 매개변수를 전달하면 위와 비교하여 ep 매개변수가 변경된 것을 알 수 있습니다.
Baidu 통계는 쿠키를 기반으로 합니다. js 스크립트가 요청되면 사용자 ID로 사용되는 영구 쿠키가 컴퓨터에 저장됩니다. 동시에 탈출 시 파라미터 ep가 초기 0에서 "7289%2C115"로 변경된 것으로 확인되었으며, 이는 2밀리초 단위, 즉 7.2초와 0.1초이다. 동시에 처음 두 번 hm.gif를 요청할 때 lt 매개변수(time, javascript: (new Date).getTime())는 변경되지 않은 상태로 유지됩니다. rnd 난수는 매번 변경됩니다.
Google Analytics 작동 방식
사용자가 Google Analytics 통계 코드가 포함된 페이지를 방문하면 사용자의 브라우저에 의해 이 코드가 실행되며, 이 코드의 기능은 열람한 페이지의 URL, 브라우저 유형, 운영 체제 등 방문자의 정보를 수집하는 것입니다. , 시스템 언어, 화면 해상도 등
그런 다음 GA 통계 코드는 이 방문자 정보를 쿠키에 저장합니다. 쿠키는 로컬에 저장되고 방문한 웹사이트와 연결되는 짧은 텍스트로, 사용자가 처음 방문하는지 여러 번 방문하는지 확인하는 데 사용됩니다. 해당 페이지의 추천 소스 및 이후 페이지 조회 정보 등
마지막으로 수집된 모든 정보는 Google Analytics의 데이터 서버로 전송됩니다. 이 프로세스는 서버의 로그 파일이 각 파일 요청 정보를 기록한다는 것을 알고 있으며 Google Analytics가 데이터를 수집하는 방식은 서버에서 투명한 1×1 GIF 이미지 파일을 요청하는 것입니다. 서버 로그에 기록되며, 파일 요청 정보에는 GA 통계 코드와 쿠키 정보로 수집된 데이터가 포함되어 있습니다. 이와 같이 이 GIF 이미지가 요청을 받을 때마다 Google Analytics 데이터 서버에서 방문자의 접속 정보를 수집합니다. .
그러나 Google Analytics는 하나의 gif 요청만 보내고 여러 번 gif 요청을 보냅니다. 계산할 수 없는 gif 이미지가 있는 경우 GA는 다른 gif 요청을 보냅니다.
요약:
웹사이트 분석 전문가인 Avinash는 데이터가 90% 정확하다면 적절한 조치를 취할 수 있다고 말한 적이 있습니다. 중요한 것은 추세를 확인하고 조치를 취한 후 테스트하고 지속적으로 최적화하는 것입니다.
기사 출처: Lu Songsong 블로그, 재인쇄 시 이 기사의 주소를 명시해 주시기 바랍니다. 감사합니다.
(편집자 : 양양) 작가 루송송 블로그의 개인 공간