커스텀 컴포넌트로 추적 코드를 추가할 때 CSP를 수정하는 것을 잊었습니다

</head> 안에 다음을 추가해 보았습니다.

<!-- Matomo - head -->
<script type="text/discourse-plugin" version="0.2">
    // 페이지 뷰 추적 
    api.onPageChange((url, title) => {
        if (_paq) {
            try {
                var currentUser = PreloadStore.get('currentUser');
                _paq.push(['setCustomVariable', 3, 'Forum status', !currentUser ? 'Anonymous' : 'LoggedIn user', 'visit']);
            } catch(e) {} 
              
            _paq.push(["setCustomUrl", url]);
            _paq.push(["setDocumentTitle", title]);
            _paq.push(["trackPageView"]);
        }
    });
</script>
<!-- /Matomo - head -->

그리고 </body> 안에 다음을 추가했습니다.

<!-- Matomo -->
<script type="text/javascript">
  var _paq = window._paq = window._paq || [];
  /* "trackPageView"를 호출하기 전에 "setCustomDimension" 같은 트래커 메서드를 호출해야 합니다 */
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://stats.xxxxxxx.xxx/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '8']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->

그런데 결과적으로 페이지의 HTML 소스에서 보이는 것은 HTML 주석뿐입니다. <script> 태그가 제거된 것으로 보입니다.

해당 영역에서 스크립트를 허용하도록 활성화해야 하는 보안 설정이 있을까요?

<!-- Matomo - head -->

<!-- /Matomo - head -->
[...]
<!-- Matomo -->

<!-- End Matomo Code -->

도움 주셔서 감사합니다.

이 Discourse에서 Matomo 분석을 활성화하는 스크립트를 사용해야 합니다.

감사합니다. 현재 문제를 해결하는 데 도움이 될 것 같습니다…

하지만 어쨌든 해당 섹션에 사용자 정의 js를 주입하는 것이 가능하지 않나요?

컴포넌트를 설치하고 “Default” 테마에 활성화했는데… 그래도 잘 안 되는 것 같습니다 :-/

브라우저 로그를 확인해 보셨나요? Matomo 스크립트 호스트를 CSP 설정 목록에 추가하셨나요?

맞혔네요… CSP 설정에 대해 알지 못했습니다…

브라우저 로그에서는 항상 이러한 문제에 대해 경고하므로, 반드시 확인해야 합니다.

@Falco 안녕하세요. Matomo가 Discourse와 함께 작동하지 않는 동일한 문제를 겪고 있는 것 같습니다. Matomo 지원팀이 제 GitHub 티켓에 대해 이렇게 알려주었습니다:

Matomo 지원팀: “귀하의 웹사이트를 확인해 보니 설정된 CSP가 저희 트래커 로딩을 차단하고 있습니다. https://matomo.org/faq/general/faq_20904/를 참고하여 서버 환경에서 이를 어떻게 설정할 수 있는지 확인해 주십시오.”

Discourse 로그(URL/logs)를 확인해 보았지만 관련 내용을 찾을 수 없었습니다.

제 Discourse는 이 URL에 있습니다: https://hec.fm
Matomo 인스턴스는 여기에 있습니다: https://stats.hec.fm

CSP를 설정에서 변경해 두었기 때문에 작동할 것이라고 생각했지만 여전히 작동하지 않습니다:

Discourse에서 Matomo 분석을 활성화하는 스크립트 튜토리얼을 꼼꼼히 따랐다고 생각했지만, 그것만으로는 부족한 것 같습니다.

제가 뭘 잘못했을까요? :slightly_smiling_face:

hec.fm에서 Matomo 스크립트가 정상적으로 로드되는 것을 확인했으니 CSP 문제는 아닌 것 같습니다. Matomo 측에서 다른 문제가 있는 건 아닌지 확인해 보세요.

또한, 위에서 첨부한 스크린샷에서 https://stats.hec.fm/Matomo 아래에 있는 행들은 불필요합니다.