Использование Google Optimize в инициализаторе плагина JS

Всем привет, у меня проблема: при включении v4_gtag для аналитики вместо v3_analytics мне нужен GTag для Google Optimize, но я постоянно получаю ошибку «gtag is not a function».

Я вызываю функцию gtag внутри файла плагина на JS. Кто-нибудь может пояснить, почему это не работает?

Вот пример моего кода. Заранее спасибо.

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?

Я бы предположил, что это определяется как часть Discourse, когда я включаю gtag в настройках.

Вам всё равно потребуется импортировать, даже если это уже определено где-либо.

Значит, мне всё ещё нужно вручную добавить скрипт импорта GTag где-нибудь?

Похоже, что gtag определяется во время выполнения в объекте window, поэтому вам не нужно импортировать его повторно, а просто вызывать его во время выполнения как window.gtag.
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/google-universal-analytics-v4.js

Я смог определить функцию при запуске, и, думаю, Discourse будет переопределять её при загрузке, что в данный момент работает нормально. Но у меня теперь другая проблема: когда я добавляю свой код отслеживания GA в код отслеживания GA Universal, он всё ещё включает analytics.js, хотя я использую v4_gtag. Это ожидаемое поведение? Не приведёт ли это к дублированию событий?