| 요약 | Discourse용 고급 Google Analytics 4 이벤트 추적 | |
| 저장소 링크 | https://github.com/multidimension-al/discourse-google-analytics | |
| 설치 가이드 | Discourse에 플러그인 설치 방법 |
Discourse 코어는 내비게이션마다 Google Analytics에 단일 page_view를 전송합니다. 이 플러그인은 읽기 시간, 읽기 진행률 및 완독 이벤트를 추가하며, 필요에 따라 페이지 뷰 관리를 인수하여 개인 메시지 및 관리자 라우트를 제외할 수 있습니다.
왜 내장된 SEO/GA 분석 태그를 사용하지 않는가?
사용할 수 있으며, 많은 포럼에는 충분합니다. 코어의 태그는 작동하며, 이 플러그인은 이를 대체하기보다 그 위에 실행됩니다.
차이는 측정 대상입니다. page_view는 URL이 로드되었음을 알려줄 뿐, 누군가가 그 내용을 읽었는지 여부는 알 수 없습니다. 따라서 긴 주제를 20분간 읽은 경우와 즉시 이탈한 경우 모두 보고서에서 동일하게 보입니다. 이 플러그인은 사용자가 실제로 얼마나 오래 읽었는지, 주제 내에서 얼마나 진행했는지, 끝까지 도달했는지를 측정합니다. 이는 콘텐츠 결정을 내릴 가치가 있는 신호이며, 리마케팅 대상 집단을 구축하는 데 가치가 있는 지표입니다.
Discourse 자체의 보고서(관리자 → 보고서)는 별개의 시스템이며, 내부 지표에 여전히 최적의 장소입니다. 여기서는 Google Analytics에 도달하는 데이터에만 초점을 맞춥니다.
기능
- 13가지 커뮤니티 이벤트: 주제 뷰, 참여 및 읽기 진행률 마일스톤, 완독, 방문별 요약, 검색, 가입, 로그인, 주제 생성, 답변, 좋아요, 북마크
- 스크롤 깊이가 아닌 게시글 스트림과 주의 집중 시간을 기준으로 읽기 측정
- 두 가지 모드: 코어의 기존 태그 확장 또는 태그 및 페이지 뷰 인수
- 개인 메시지, 제한된 카테고리 및 관리자 라우트에서 이벤트 생성 없음
- 주제 제목 및 검색어 전송 기본 비활성화
- 그룹별로 스태프 트래픽을 GA4 내부 트래픽으로 표시 가능
- 설정 오류를 위한 진단 페이지 및 관리자 대시보드 경고
설정
1. 설치
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/multidimension-al/discourse-google-analytics.git
그 다음 ./launcher rebuild app을 실행합니다.
2. 모드 선택. 관리자 → 설정 → Google Analytics 4.
코어 확장 (기본값) — 코어가 태그와 페이지 뷰를 유지하고, 플러그인이 그 위에 이벤트를 추가합니다. 코어의 ga universal tracking code를 G-XXXXXXXXXX로, ga version을 v4_gtag로 설정하세요.
관리형 — 플러그인이 태그와 페이지 뷰를 인수하며, 이를 통해 PM 및 관리자 라우트를 제외할 수 있습니다. 코어의 ga universal tracking code를 비우고, ga4 integration mode를 managed로 설정한 후, ID를 ga4 measurement id에 입력하세요.
3. discourse ga4 enabled 활성화.
4. 선택 사항 — 내부 트래픽. ga4 internal traffic groups의 기본값은 관리자 및 모더레이터입니다. GA4의 관리자 → 데이터 설정 → 데이터 필터 → 내부 트래픽에서 traffic_type이 internal과 일치하는 필터를 생성해야만 적용됩니다.
5. 확인. 관리자 → 플러그인 → Google Analytics → 진단.
기존 설정을 코어 확장에서 관리형으로 전환하려면, 설정을 수동으로 편집하는 대신 진단 페이지의 기존 Discourse GA 설정 인수를 사용하세요.
설정
| 이름 | 설명 |
|---|---|
discourse ga4 enabled |
플러그인 활성화. 기본값은 비활성화입니다. |
ga4 integration mode |
core_extension (코어가 태그 소유) 또는 managed (플러그인이 태그 소유). |
ga4 measurement id |
관리형 모드를 위한 GA4 측정 ID. |
ga4 track page views |
page_view 전송. 관리형 모드 전용. |
ga4 track topic views |
주제 방문당 1회 discourse_topic_view 전송. |
ga4 track topic engagement |
읽기 시간 마일스톤에서 discourse_topic_engaged 전송. |
ga4 engagement milestones |
이벤트를 발생시킬 활성 읽기 시간(초). 기본값 10|30|60|180. |
ga4 track topic progress |
읽기 위치 마일스톤에서 discourse_topic_progress 전송. |
ga4 progress milestones |
이벤트를 발생시킬 주제 진행률(퍼센트). 기본값 25|50|75|100. |
ga4 track read completion |
독자가 끝까지 도달할 때 discourse_topic_read_complete 전송. |
ga4 read complete min seconds |
끝 도달이 완독으로 간주되기 위한 최소 읽기 시간. |
ga4 track read summaries |
독자가 주제를 떠날 때 discourse_topic_read_summary 전송. |
ga4 read summary min seconds |
이 시간 미만인 방문은 이탈로 간주되어 요약되지 않음. |
ga4 track search |
전체 페이지 검색에서 결과가 반환될 때 search 전송. |
ga4 track registration |
계정이 생성된 후 sign_up 전송. |
ga4 track login |
성공적인 로그인 후 login 전송. 기본값은 비활성화입니다. |
ga4 track topic creation |
discourse_topic_created 전송. |
ga4 track replies |
discourse_reply_created 전송. |
ga4 track likes |
discourse_post_liked 전송. 좋아요를 취소하면 아무것도 전송되지 않음. |
ga4 track bookmarks |
discourse_bookmark_created 전송. |
ga4 send search terms |
검색한 내용도 함께 전송. 기본값은 비활성화입니다 — 포럼 검색에는 개인 정보가 포함될 수 있습니다. |
ga4 send page titles |
페이지 제목 포함. 기본값은 비활성화입니다 — 주제 라우트에서는 주제 제목이 됩니다. |
ga4 track private message activity |
식별자를 포함하지 않는 집계된 PM 이벤트 1개 전송. 기본값은 비활성화입니다. |
ga4 login required is restricted |
로그인 필수 포럼에서 주제 및 카테고리 식별자를 보류. |
ga4 send trust level |
신뢰 수준 0–4를 이벤트 매개변수로 포함. |
ga4 internal traffic groups |
이 그룹의 멤버는 traffic_type=internal로 표시됨. 기본값: 관리자, 모더레이터. |
ga4 suppress in embed |
임베드 모드에서 아무것도 전송하지 않음. |
ga4 debug mode |
이벤트 및 억제 결정을 브라우저 콘솔에 기록. |
참고 사항
- 코어 확장 모드에서는 코어가 여전히 페이지 뷰를 소유하므로, PM URL과 주제 제목이 전송됩니다. 관리형 모드에서만 이것이 변경됩니다.
|topic_id를 GA4 사용자 지정 차원으로 등록하지 마세요 — 무한정 증가하여 속성의基数(cardinality) 한도에 도달할 수 있습니다. - Discourse 자체의 관리자 → 보고서 → 인기 검색은 클릭 수를 기록하므로, 어떤 검색이 실패했는지를 알려줍니다. GA4는 이를 할 수 없습니다. 이것이
ga4 send search terms가 기본적으로 비활성화되어 있는 이유입니다.

