Google Publisher Tag, как удалить прослушиватель событий из Сервиса - PullRequest
1 голос
/ 10 мая 2019

Похоже, есть несколько вопросов о том, как регистрировать события в gpt-сервисе:
Тег издателя Google, регистрирующийся на события
регистрация на события с тегом издателя Google

Как это сделать, четко определено в документации :
googletag.pubads().addEventListener('eventName', callbackFn);

Я добавляю свое событие в сервис, когда компонент (React) монтируется внутрифункция обратного вызова window.googletag.cmd.push, как описано в этого руководства Google .

Теперь проблема заключается в том, что каждый раз, когда я меняю страницу, в службу добавляется все больше слушателей событий.Я могу убедиться, что только один слушатель событий выполняется в реально существующих слотах, используя этот метод (из документации):

googletag.pubads().addEventListener('impressionViewable', function(event) {
  if (event.slot == targetSlot) { // will only run on target slot
    // Slot specific logic.
  }
});

Но чем больше, тем больше слушателей событий останутся активными и продолжат выполнение (без выполнениякод внутри оператора if).

Теперь я предположил, что Google реализовал бы что-то вроде этого (для запуска на componentWillUnmount):
googletag.pubads().removeEventListener('eventName', callbackFn);

Но его нет в документации, и я не могуПохоже, вы нашли способ удалить активные прослушиватели событий из службы?

...