Lightweight Google Analytics alternatives

Ben Hoyt

가벼운 Google Analytics 대안들

원문은 Ben Hoyt님이 에 게재했습니다. 이 블로그 구독하기

점점 더 많은 웹사이트 운영자가 웹을 탐색하는 사용자를 ‘모든 것을 지켜보는 구글’이 추적한다는 사실에 우려를 표하고 있다. Google Analytics(GA)는 무료로 제공되는 기능 풍부한 웹 분석 시스템으로, 개인정보 우려에도 불구하고 크고 작은 웹사이트에서 사실상 표준 분석 도구로 자리 잡았다. 하지만 최근 몇 년 사이 구글의 지배력을 흔드는 대안들이 점점 늘어나고 있다. 이번 기사에서는 가볍고 오픈소스인 두 가지 대안, 즉 GoatCounter와 Plausible을 살펴본다. 다음 기사에서는 좀 더 규모가 큰 도구들을 다룰 예정이다.

GA는 이 분야에서 압도적인 점유율을 차지하고 있다. BuiltWith가 보여주듯 상위 10만 개 웹사이트 중 약 86%가 GA를 사용한다. 이 수치는 상위 100만 개 웹사이트 기준으로는 64%로 내려간다. 이 수치는 구글이 Urchin을 인수해 Google Analytics로 이름을 바꾼 이후 지난 15년간 꾸준히 증가해 왔다. 개인정보 우려 외에도 GA는 일부 웹사이트 운영자에게 필요 이상으로 복잡하고 기능이 많다. 많은 운영자는 그저 자신의 사이트 페이지에 얼마나 많은 트래픽이 오는지, 그리고 그 트래픽이 어디에서 유입되는지만 알고 싶어 한다. 그래서 지난 몇 년간 더 단순하고 개방적인 도구들이 인기를 얻은 것은 놀라운 일이 아니다.

LWN 역시 GA를 사용하고 있음을 밝혀둔다. 다만 다른 선택지를 검토 중이다. 환경설정에서 광고를 끈 사용자에게는 GA 코드가 제공되지 않는다.

구글이 추적하는 정보와 그것이 우려스러운 이유

구글이 어떤 정보를 추적하느냐고 묻는다면, 냉소적인 사람은 “모든 것”이라고 답할지 모른다. 문제는 이 말이 진실에서 크게 벗어나지 않는다는 점이다. 구글은 사용자에 대해 엄청난 양의 정보를 추적하고 저장한다.

2018년 논문 [PDF]에서 더글러스 슈미트(Douglas Schmidt)는 안드로이드 기기의 위치 추적을 예로 들며 구글 추적의 범위를 강조한다:

안드로이드와 크롬은 모두 사용자의 아무런 상호작용이 없어도 구글에 데이터를 전송한다. 실험 결과, 크롬이 백그라운드에서 실행 중인 채로 방치된 고정된 안드로이드 폰은 24시간 동안 340회, 즉 시간당 평균 14회 위치 정보를 구글에 전송했다.

이 논문은 ‘능동적’ 추적과 ‘수동적’ 추적을 구분한다. 능동적 추적은 사용자가 구글 서비스를 직접 사용하거나 로그인할 때, 예컨대 검색을 수행하거나 Gmail에 로그인하는 등의 경우를 말한다. 사용자의 모든 검색 키워드를 기록하는 것 외에도 구글은 GA와 기타 구글 퍼블리셔 도구를 사용하는 웹사이트를 방문하는 사용자를 수동적으로 추적한다. 슈미트는 ‘하루 일과’ 시나리오 예시에서 “구글이 수집하거나 추론한 정보의 3분의 2 이상이 수동적 수단을 통해 이루어졌다”고 밝혔다.

슈미트의 논문은 GA 쿠키 추적이 어떻게 작동하는지 자세히 설명하며, 여러 사이트에 걸쳐 사용자와 광고 클릭을 추적하는 ‘서드파티’ 쿠키와 특정 방문 웹사이트 도메인에 한정된 ‘퍼스트파티’ 쿠키의 차이에 주목한다:

GA 쿠키는 사용자가 방문한 웹사이트의 특정 도메인에 한정된 ‘퍼스트파티 쿠키’인 반면, DoubleClick 쿠키는 일반적으로 doubleclick.net과 같은 공통의 서드파티 도메인과 연결된다. 구글은 이러한 쿠키를 사용해 여러 서드파티 웹사이트에 걸친 사용자 상호작용을 추적한다.

사용자가 웹사이트의 광고와 상호작용하면 DoubleClick의 전환 추적 도구(예: Floodlight)가 사용자 컴퓨터에 쿠키를 심고 고유한 클라이언트 ID를 생성한다. 이후 사용자가 광고된 웹사이트를 방문하면 저장된 쿠키 정보가 DoubleClick 서버에 의해 액세스되어 해당 방문이 유효한 전환으로 기록된다.

이처럼 많은 웹사이트가 GA와 함께 구글 광고 제품을 사용하기 때문에 구글은 유명 대형 사이트는 물론 중소 규모의 작은 사이트를 포함한 수많은 웹사이트에 걸친 사용자의 탐색 기록 상당 부분을 알게 된다. 요컨대 구글은 사용자가 무엇을 좋아하는지, 어디에 있는지, 무엇을 구매하는지 많은 것을 알고 있다.

구글은 타기팅 광고나 위치 추적 같은 기능을 끄거나 계정에 연결된 개인화된 프로필을 삭제하는 방법을 제공하긴 한다. 하지만 이러한 기능은 거의 대부분 옵트인(opt-in) 방식이며, 대다수 사용자는 그 존재를 모르거나 알더라도 굳이 끄지 않는다.

물론 GA에서 다른 도구로 갈아탄다고 해서 이러한 개인정보 문제가 모두 사라지는 것은 아니다(예를 들어 안드로이드 위치 추적이나 검색 추적이 중단되지는 않는다). 하지만 구글이 수집하는 방대한 데이터 양을 줄이는 한 가지 방법임에는 틀림없다. 또한 GA 대안을 사용하는 사이트의 경우, 구글은 해당 사이트의 트래픽 패턴을 뒤에서 몰래 살펴볼 수 없게 되는데, 이 데이터는 향후 경쟁 도구를 만드는 데 활용될 수도 있는 정보다.

LWN 독자는 개인정보 보호에 민감한 성향을 보일 가능성이 높다. 구글 크롬 대신 파이어폭스를 쓰고 광고 차단기를 켜는 식이다. 하지만 그들이 만드는 웹사이트의 이용자까지 모두 그렇지는 않을 수 있다. 웹사이트 개발자가 선택하는 분석 도구는 이용자의 개인정보를 존중하고, 구글이 이용자의 탐색 패턴에 대해 너무 많은 것을 알지 못하도록 하는 데 도움이 될 수 있다.

GoatCounter

GoatCounter는 비교적 최근에 등장한 웹 분석 도구로, 2019년 8월에 출시됐다. 마틴 투르누아(Martin Tournoij)가 만들었으며, 다른 도구에 비해 ‘1인 개발자가 만든’ 느낌이 좀 더 강하다. 겉보기에는 다소 덜 세련됐지만, 개발자 친화적이고 설정이 간단하다.

[www.goatcounter.com의 GoatCounter UI]

이 도구는 URL별 페이지뷰와 방문 수, 브라우저 및 운영체제 통계, 기기 화면 크기, 위치, 리퍼러 정보 등 기본적인 분석 기능을 모두 지원한다. 기본적으로 GoatCounter는 최근 7일간의 데이터를 시간 단위로 나눠 보여주지만, 사이트 운영자는 간단한 컨트롤로 기간을 조정할 수 있다.

GoatCounter는 독특한 가격 정책을 가지고 있으며, 소스 코드는 카피레프트인 European Union Public License(EUPL)로 배포된다. 기업은 소프트웨어를 직접 호스팅할 수도 있고, 소액의 비용을 내고 GoatCounter의 호스팅 버전을 이용할 수도 있다(다만 ‘개인’ 프로젝트의 경우 호스팅 버전도 무료다). 투르누아는 장문의 글에서 EUPL을 선택한 이유를 설명하며 이렇게 적었다:

나는 여전히 사람들이 내 코드로 무엇을 하든 크게 신경 쓰지 않는다. 다만 내가 생계를 유지하는 능력이 부당하게 방해받는 것은 신경 쓰인다. 내 MIT 코드를 가져가 전일제로 개선 작업을 하면서 그 결과를 나에게 돌려주지 않는다면, 경쟁자는 사실상 두 배의 인력을 갖게 되는 셈이다. 나(그들 입장에서는 공짜 노동력)와 그들 자신이 함께 작업하는 것이니, 그들은 항상 나보다 유리할 것이다.

GoatCounter는 Go로 작성됐으며, UI에서는 가벼운 상호작용을 위해 별도 프레임워크 없는 바닐라 JavaScript를 사용한다. JavaScript 프레임워크는 종종 웹 접근성을 방해한다는 점에서, 홈페이지에 접근성을 우선순위로 내세운 GoatCounter의 방침은 Hacker News에서 투르누아에게 감사를 표한 ‘ctoth’에게 큰 울림을 줬다:

이런 주류 제품 홈페이지에서 접근성에 대한 언급을 본 것은 이번이 처음이다. 시각장애인 개발자로서 정말 멋지게 느껴졌고, 누군가 귀 기울여 주고 있다는 생각이 들었다. 만들어 주셔서 감사하다.

페이지뷰 집계 외에도 GoatCounter는 개인 정보를 저장하지 않고 클라이언트를 식별하기 위해 브라우저의 유저 에이전트와 IP 주소의 해시를 이용해 세션을 추적한다. 이 해시를 생성하는 데 쓰이는 salt는 슬라이딩 윈도우 방식으로 4시간마다 교체된다. 투르누아는 세션 추적의 기술적 측면에 대해 상세한 설명을 작성했으며, 유사한 목표를 가진 다른 솔루션과의 비교도 포함했다.

JavaScript 사용을 피하고 싶거나 JavaScript가 비활성화된 사용자의 분석까지 포함하려는 웹사이트 운영자를 위해 GoatCounter는 JavaScript 없이 추적하는 방식을 지원한다. 추적할 페이지에 1x1 투명 GIF 이미지를 ‘<img>’ 태그로 넣는 방식인데, 이 경우 리퍼러나 화면 크기는 기록되지 않는다.

GoatCounter의 호스팅 버전은 설정이 쉽다. 계정을 만들고 웹사이트에 JavaScript 한 줄을 추가하는 데 5분 정도 걸렸고, 몇 초 만에 분석 데이터가 표시되기 시작했다. 호스팅 버전을 사용하더라도 사이트 운영자는 데이터를 완전히 소유하며, 전체 덤프를 내보내거나 언제든 계정을 삭제할 수 있다.

자체 호스팅 버전 역시 리눅스 바이너리를 이용하거나 소스에서 직접 빌드해 간단히 설정할 수 있다. 기본 SQLite 데이터베이스 설정으로 소스에서 빌드해 로컬에 설정하는 데 10분도 걸리지 않았다. 아래에서 다룰 Plausible과 달리 설치가 훨씬 가벼웠고, 아무것도 추가로 다운로드하지 않았으며 거의 즉시 실행됐다.

Plausible

Plausible은 2019년 초에 출시된 또 다른 비교적 새로운 분석 도구다. 출시 직후 오픈소스로 전환했으며, 코드는 관대한 MIT 라이선스로 배포된다. 이 회사의 비즈니스 모델은 호스팅에 대해 요금을 부과하는 것이며, 가격 정책은 중소기업을 대상으로 한다. 소스 코드를 공개하는 것 외에도 Plausible은 투명성을 높이기 위해 공개 로드맵을 운영하는, 점점 늘어나고 있는 기업 중 하나다. 또한 잠재 고객을 위한 정보성 콘텐츠를 블로그에 게시한다.

[plausible.io의 Plausible UI]

Plausible은 기술적으로 독특한데, 서버 코드가 Erlang 가상 머신에서 동작하는 함수형 프로그래밍 언어인 Elixir로 작성됐다. 프론트엔드 UI 역시 React 같은 렌더링 프레임워크 대신 상호작용 부분에 소량의 바닐라 JavaScript를 사용한다. 또한 가장 가벼운 분석 스크립트 중 하나라고 자부하는데, 작성 시점 기준으로 plausible.js의 크기는 781바이트(압축 해제 시 1.2KB)다. 비교하면 GA의 analytics.js는 거의 18KB(압축 해제 시 46KB)이며, GoatCounter의 count.js는 2.3KB(압축 해제 시 6.3KB)다. 이 스크립트는 사이트의 모든 페이지에서 로드되므로 그 크기는 의미 있는 차이를 만들 수 있다.

사용자 인터페이스 측면에서는 Plausible이 GoatCounter보다 확실히 더 세련됐다. 다만 상당히 미니멀한 편인데, 어쩌면 GoatCounter보다도 더 미니멀할 수 있다. 전체 방문자 수, 경로별 페이지뷰 수, 리퍼러 정보, 지도상 위치, 기기 정보(화면 크기, 브라우저, 운영체제별 분류)를 제공한다. 또한 ‘이탈률’ 지표를 제공하지만, 정확한 정의는 명확하지 않다.

Plausible 홈페이지는 ‘100% 데이터 소유권’을 제공한다고 밝히고 있으며, 단일 차트에 대한 CSV 데이터를 내보내거나 Plausible.io 계정을 삭제할 수 있다. 하지만 이 데이터 덤프는 모든 이벤트에 대한 상세 정보를 포함하는 GoatCounter의 전체 덤프에 비해 활용도가 훨씬 떨어진다.

Plausible을 자체 호스팅하는 것도 (심지어 plausible하게도) 가능하지만, 창립자인 우쿠 타흐트(Uku Taht)가 오픈소스 전환 발표에서 지적했듯:

지금으로서는 Plausible 자체 호스팅을 공식적으로 지원하지 않는다는 점을 밝힌다. 프로젝트가 여전히 빠르게 발전하고 있어 자체 호스팅 솔루션을 유지하면 제품 개발 속도가 상당히 느려질 것이다. 제품과 비즈니스가 좀 더 안정되면 향후 자체 호스팅 솔루션을 제공하고 싶다.

그렇긴 해도 불과 몇 주 전 Plausible은 Docker를 이용해 시스템을 자체 호스팅하는 실험적인 방법을 설명하는 문서를 추가했다. 그 권장 사항에 따라 docker-compose를 이용해 로컬에서 실행해 보았다. 몇 분간 이어진 설치 과정에서 수많은 Docker와 npm 패키지를 다운로드하는 모습은 다소 불안했으며, 설치가 끝난 뒤에도 PostgreSQL 마이그레이션과 관련한 이해하기 어려운 오류 때문에 시작되지 않았다. ‘실험적’이라는 꼬리표가 확실히 어울렸다.

독점 옵션 간단히 살펴보기

가볍고 개인정보 보호에 중점을 둔 독점 도구 중 언급할 만한 것도 몇 가지 있다. 당연히 개방형 개발이나 자체 호스팅의 장점은 없지만, 여전히 구글의 데이터 수집망에서 벗어날 수 있는 저비용 수단이 된다.

하나는 솔로 개발자 아드리안 판 로섬(Adriaan van Rossum)이 만든 클라우드 기반 도구인 미니멀한 Simple Analytics 제품으로, Plausible과 유사하게 몇 가지 핵심 지표만 보여주는 깔끔한 인터페이스를 갖추고 있다. 또 다른 하나는 Fathom으로, 처음에는 오픈소스였지만 현재 버전은 독점이다(다만 회사는 향후 오픈소스 코드베이스 유지 관리를 다시 시작하길 희망한다고 밝히고 있다).

요약

지난 몇 년간 Google Analytics의 훌륭한 대안들이 다수 등장했으며, 특히 몇 가지 기본 기능만 필요한 경우 더욱 그렇다. 최근의 대안들 중 다수는 오픈소스이면서 개인정보 보호를 중시하므로, 프로젝트나 기업이 계속 독점 분석 시스템을 사용할 이유가 줄어들고 있다.

기본적인 트래픽 수치만 필요한 사이트 운영자라면 GoatCounter와 Plausible 모두 훌륭한 선택으로 보인다. 시각적 완성도와 문서를 더 중시한다면 Plausible을, 개발자 친화적이고 자체 호스팅이 쉬운 도구를 중시한다면 GoatCounter를 더 선호할 가능성이 높다. 곧 GA의 좀 더 무거운 대안들과 웹 서버 로그를 활용한 분석 도구를 살펴보는 두 번째 기사를 게재할 예정이다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글