У меня проблема с Google Optimize JS API в моем SPA, обратный вызов запускается только при перезагрузке страницы, но при переходе назад и вперед на конкретную страницу обратный вызов не запускается. Вот сценарий:
1) Я перезагружаю приложение и перехожу на свою страницу с активным A / B-тестом: mysite.com/testpage
2) Выполняется следующий код:
gtag('event', 'optimize.callback', {
name: experimentId,
callback: useVariant,
});
и useVariant(variantId)
вызывается с установкой правильного optionId.
3) Я щелкаю или ухожу со страницы, а затем щелкаю / перехожу обратно на mysite.com/testpage, обратите внимание, это SPA.
4) Код gtag()
вызывается повторно, НО обратный вызов useVariant()
не выполняется.
5) Какого черта.
6) Если я перезагружаю страницу, используя CMD + R (да, я использую Mac), код работает как в пункте 1) И все в порядке.
Я пробовал следующее:
A. Сброс уровня данных с помощью google_tag_manager['xxx'].datalayer.reset()
Б. Повторная отправка события с неопределенным обратным вызовом gtag('event', 'optimize.callback', undefined)
C. Сброс datalayer = [] manually
D. Удаление события optimize.callback
из уровня данных
E. Любая комбинация вышеперечисленного (что иногда дает немного интересные результаты)
Итак, вопрос в пункте 5: WTF? Приветствуются любые предложения / мысли.
Спасибо!