Фрагмент Google Optimize для контейнера с идентификатором GTM- неправильно установлен на этой странице

Я пытаюсь использовать Google Optimize с Google Analytics, установленным gtag.js, и получаю ошибки в некоторых частях пользовательского интерфейса Optimize, но не в других.

Вот что я сделал:

  1. Установил Google Analytics, следуя инструкциям «Настройте отслеживание Analytics с помощью gtag.js» (и подтвердил, что он работает с помощью предварительного просмотра в реальном времени).
  2. Настройте Google Analytics, следуя инструкциям «Развернуть Оптимизацию с помощью глобального тега сайта (gtag.js)»
  3. Добавлен фрагмент кода, скрывающий страницу.

Когда я настраиваю эксперимент с использованием расширения Chrome, Optimize работает так, как ожидает Google. Обратите внимание, что на снимке экрана ниже нет числа, показанного значком восклицательного знака (оно появится, если я удалю параметр Optimize code), и щелчок по нему говорит: «Проблем не обнаружено». (Кроме того, на значке расширения Chrome нет символа ошибки.)

Расширение Google Optimize Chrome без ошибок

Однако, если я затем просматриваю оригинал или вариант (щелкнув значок «экран» в Оптимизации), я получаю предупреждение javascript, в котором говорится:

Фрагмент Google Optimize для контейнера с идентификатором GTM-abcdef неправильно установлен на этой странице. Чтобы предварительно просмотреть варианты для этого эксперимента, убедитесь, что фрагмент кода Google Оптимизации установлен на всех страницах, которые вы хотите протестировать.

(Я заменил свой фактический идентификатор контейнера на "abcdef" выше.)

И значок расширения Chrome также показывает ошибку и аналогичное сообщение при нажатии (здесь я закрасил название эксперимента):

Значок расширения Google Optimize Chrome с ошибкой

Вот мой раздел HTML <head> (с удаленными идентификаторами):

Я сравнил сценарий из этого примера с примером в «Развернуть оптимизацию с использованием глобального тега сайта ( gtag.js) ", и они выглядят идентичными, за исключением того, что мой код содержит настоящие идентификаторы:

<head>
    <meta charset="UTF-8">

    <!-- Page hiding snippet (recommended)  -->
    <style>.async-hide { opacity: 0 !important} </style>
    <script>(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date;
    h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')};
    (a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c;
    })(window,document.documentElement,'async-hide','dataLayer',4000,
    {'GTM-zyxzyx':true});</script>

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-abcdef"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-abcdef', { 'optimize_id': 'GTM-zyxzyx'});      
    </script>

    <title></title>
</head>

Я пробовал это против сайта, работающего локально (на веб-сервере Flask, порт 5000), и против сайта, развернутого на Heroku, и поведение одинаково в обоих случаях.

Я также пытался удалить код фрагмента, скрывающий страницу, но это не помогло.

Я также пробовал провести эксперимент, но всегда видел исходный вариант, даже когда настраивал альтернативный на 100% трафика, поэтому он там не работает. (Я пробовал это только против локального сайта, не пробовал против экземпляра Heroku.)

Стоит отметить, что в коде GA есть такая строчка:

function gtag(){dataLayer.push(arguments);}

Я видел это в Интернете в такой форме и с точкой с запятой в конце:

function gtag(){dataLayer.push(arguments)};

Я пробовал оба без какого-либо эффекта.

Что я здесь делаю не так?


person Sam    schedule 08.01.2018    source источник
comment
Если возникла та же проблема, мы сообщим вам, если мы выясним, что происходит. Оптимизация работала для вас раньше? В нашем случае мы успешно использовали его для многих тестов в прошлом, но теперь он не обнаруживает фрагмент Optimize.   -  person shirajg    schedule 24.01.2018
comment
Рад, что это не только я, @shirajg. Фактически, это первый раз, когда я использую Оптимизацию, поэтому у меня нет предыдущего опыта, с которым можно было бы сравнивать.   -  person Sam    schedule 24.01.2018
comment
Я попробовал это в окне инкогнито, и, похоже, он работает правильно. Я думаю, мне мешал плагин. Я не нашел времени, чтобы определить, какой из них, но я заметил на вашем скриншоте, что у вас также установлен lastPass, так что, возможно, это все.   -  person shirajg    schedule 25.01.2018
comment
Спасибо @shirajg. Некоторое время у меня не будет возможности попробовать это, но я попробую ваше предложение в следующий раз, когда буду работать над этим.   -  person Sam    schedule 29.01.2018
comment
Вы нашли для этого решение?   -  person Miguel Stevens    schedule 26.06.2018
comment
В конце концов, мы использовали Диспетчер тегов Google, чтобы добавить на сайт аналитику и оптимизацию, поскольку именно это клиент использовал в другом месте. Боюсь, у меня нет ответа на этот вопрос, @Notflip.   -  person Sam    schedule 26.06.2018


Ответы (1)


Я не знаю, правильно ли это, но должен ли скрывающийся фрагмент использовать идентификатор UA-abcdef?

Если вы используете Диспетчер тегов Google для развертывания Оптимизации, укажите во фрагменте, скрывающем страницу, идентификатор контейнера Диспетчера тегов, а не идентификатор контейнера Оптимизации. Подробнее об использовании Оптимизации с системой управления тегами (отсюда: https://support.google.com/optimize/answer/7100284?hl=en)

Я не уверен, классифицируется ли развертывание кода таким образом как развертывание Оптимизации с помощью Диспетчера тегов Google. Что думают другие?

person Alfonso    schedule 04.10.2018