플러그인 초기화 JS에서 Google Optimize 사용

여러분 안녕하세요, v3_analytics 대신 v4_gtag를 활성화했을 때 문제가 생겼습니다. Google Optimize에 GTag가 필요한데, 계속 gtag is not a function이라는 오류가 발생합니다.

플러그인 JS 파일 내에서 gtag 함수를 호출하고 있는데, 왜 작동하지 않는지 더 자세한 설명을 주실 수 있나요?

아래는 제가 작성한 코드의 예시입니다. 미리 감사드립니다.

export default {
  name: 'common-init',
  after: 'inject-objects',
  initialize() {
    gtag('event', 'optimize.callback', {
      name: settings.optimize_js_experiment_id,
      callback: (variation) => {
       console.log(`Variation: ${variation}`)
      }
    })
  }
}

gtag 함수는 어디에서 정의하나요?

gtag을 설정에서 활성화하면 Discourse의 일부로 정의되는 것 같습니다.

어디서 이미 정의되어 있더라도 여전히 import가 필요합니다.

그러면 GTag 가져오기 스크립트를 어딘가에 수동으로 추가해야 하나요?

gtag은 런타임에 window 객체 아래에 정의되는 것 같습니다. 따라서 다시 가져올 필요가 없고, 런타임에서 window.gtag처럼 호출하면 됩니다.
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/google-universal-analytics-v4.js

시작 시 함수를 정의하는 데는 성공했고, discourse가 로드될 때 이를 다시 정의할 것으로 생각하는데, 현재까지는 정상적으로 작동하고 있습니다. 하지만 이제 다른 문제가 생겼습니다. ga universal tracking code에 GA 추적 코드를 추가해도 v4_gtag를 사용하고 있음에도 여전히 analytics.js가 포함됩니다. 이는 예상되는 동작인가요? 그렇다면 중복 이벤트 전송 문제가 생기는 것 아닌가요?