Google Tag Manager интерпретирует переменную со строковым значением 'false' как логическое значение false? - PullRequest
0 голосов
/ 19 февраля 2019

Я установил новую переменную уровня данных в Диспетчере тегов, которая будет представлять, является ли событие попаданием без взаимодействия.Предполагается, что это логическое значение true / false.Я установил значение по умолчанию false (без кавычек).

Я заметил, когда я явно включаю эту переменную как логическое значение в мои события, например:

dataLayer.push({'event': 'gaEvent', ..., 'nonInteractionHit': false});

Режим предварительного просмотра диспетчера теговотображается в свойствах события Non-Interaction Hit: false как логическое (без кавычек).Это ожидается.

Однако, когда я не указываю значение для nonInteractionHit, например:

dataLayer.push({'event': 'gaEvent', ...});

В режиме предварительного просмотра событие, запущенное с Non-Interaction Hit: 'false', отображается как * 1016.* строка значение (с кавычками).По сути, кажется, что мое значение по умолчанию интерпретируется как строка вместо логического значения.Это касается, потому что JavaScript потрясающий, а строка 'false' на самом деле truey .

Поэтому мой вопрос: считает ли GTM строковые представления «false» или «true» как правильныелогические значения или просто строки, особенно при использовании в контексте свойства, которое должно быть логическим?Действительно ли 'false' действительно оценивается в false, как мне нужно, в моем случае?

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

1 Ответ

0 голосов
/ 19 февраля 2019

Мне кажется, я нашел общий ответ на свой вопрос, но я оставлю это открытым, если кто-то захочет дать лучший ответ.

Я нашел свой ответ здесь: https://www.simoahava.com/analytics/fun-google-tag-manager-part-2/#true-and-false

Я не совсем уверен, как именно «ложь» интерпретируется в моей ситуации, устанавливающей попадание без взаимодействия, но кажется, что для некоторых переменных GTM требуется логический тип и ввод true или false в поле (без кавычек) интерпретируется как строка и может работать не так, как ожидалось.И, к сожалению, вы не можете указать логическое значение true / false в текстовых полях GTM.

Элегантный обходной путь Simo состоит в том, чтобы вместо этого также определять переменные {{true}} и {{false}} на основе фрагмента Javascript, которыйзаписывается как function(){return true;} и function(){return false;} соответственно.Затем в моем случае я могу установить значение по умолчанию для переменной {{false}}.Я проверил, что в режиме предварительного просмотра это отображается как правильное логическое значение без кавычек.

Еще одно доказательство: когда мне было введено значение по умолчанию, как текст false, введенный в текстовое поле,а затем установить переопределение форматирования для «Преобразовать ложь в ...» и указать произвольное новое значение.Когда я запустил событие, оно не было переопределено.Он показал значение как 'false'.Следовательно, собственная система переопределения GTM не интерпретировала текст false как логическое значение.Он также не интерпретировал это как истину, либо ...

Уберите: используйте свои собственные переменные {{true}} и {{false}}, чтобы убедиться, что вы назначаете правильный логический тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...