고급 Google Analytics (v4)

:information_source: 요약 Discourse용 고급 Google Analytics 4 이벤트 추적
:hammer_and_wrench: 저장소 링크 https://github.com/multidimension-al/discourse-google-analytics
:open_book: 설치 가이드 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 codeG-XXXXXXXXXX로, ga versionv4_gtag로 설정하세요.

관리형 — 플러그인이 태그와 페이지 뷰를 인수하며, 이를 통해 PM 및 관리자 라우트를 제외할 수 있습니다. 코어의 ga universal tracking code를 비우고, ga4 integration modemanaged로 설정한 후, ID를 ga4 measurement id에 입력하세요.

3. discourse ga4 enabled 활성화.

4. 선택 사항 — 내부 트래픽. ga4 internal traffic groups의 기본값은 관리자 및 모더레이터입니다. GA4의 관리자 → 데이터 설정 → 데이터 필터 → 내부 트래픽에서 traffic_typeinternal과 일치하는 필터를 생성해야만 적용됩니다.

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가 기본적으로 비활성화되어 있는 이유입니다.
1개의 좋아요