Ищем пример логики для извлечения значения DOM в элемент данных Custom Script Adobe DTM.

Актуальный вопрос:

Есть ли у кого-нибудь базовая примерная логика того, как вытащить значение элемента DOM в пользовательский элемент данных сценария?

Фон:

Я пытаюсь создать некоторые пользовательские элементы данных в Adobe Dynamic Tag Management (DTM). Я хочу захватить определенные разделы моей хлебной крошки в элементы - например. Данная навигационная цепочка Главная >> Категория 1 >> Категория 4 >> Страница 1, я бы хотел X = Категория 1, Y = Категория 4, Z = Страница 1

К сожалению, якоря в панировочных сухарях не используют согласованные идентификаторы, поэтому мне нужна условная логика, чтобы их выбрать. Пример: когда я нахожусь на целевой странице категории 1, элемент категории имеет идентификатор «Текущий», но в противном случае он имеет идентификатор «L1Link», поэтому мне нужна следующая логика:

if(#L1Link exists)
   X = #L1Link
else
   X = #Current

К сожалению, я не знаю, как выбрать элемент DOM в моей пользовательской функции. Я не думаю, что _satellite.$data — это то, что мне нужно (мне не нужны данные, мне нужен только текст гиперссылки). Я пытался использовать cssQuery, но на самом деле у меня нет обратного вызова, чтобы что-то передать (и, вопреки документации, кажется, что он очень расстраивается, если у меня нет обратного вызова).


person Gyrfalcon2138    schedule 30.05.2014    source источник


Ответы (2)


Перейдите в раздел Правила > Элементы данных и создайте Элемент данных со следующими параметрами:

Имя: категория_1

Тип: Пользовательский скрипт

Затем нажмите «Открыть редактор» и добавьте следующее:

var x = document.getElementById('L1Link')||document.getElementById('Current');
if (x) return x.innerText||x.textContent;
else return '';

Это сначала будет искать #L1Link, а в противном случае будет искать #Current. Если он найден, он вернет текст ссылки.

На основе вашего сообщения установите Запомнить это значение для как "Просмотр страницы".

Сохранить изменения

Далее перейдите к

Правила > Правила загрузки страницы

Если у вас еще нет общей настройки правила загрузки страниц, которое настроено на всплывающее окно при каждой загрузке страницы, создайте его и назовите его, например, «каждая страница».

В разделе Условия > Критерии выберите Данные:Пользовательские из раскрывающегося списка, а затем нажмите Добавить критерии.

Затем добавьте следующее в текстовую область Пользовательский:

return _satellite.getVar('category_1')||true;

Это условие будет явно вызывать элемент данных, чтобы гарантировать, что он будет вызван, потому что DTM капризный и иногда может не оценивать элементы данных. Он возвращается к true, чтобы гарантировать, что условие всегда возвращает true, так что условие не приведет к сбою выполнения правила.

Затем в разделе правила Adobe Analytics выберите любые eVar и/или prop, которые вы хотите установить (например, prop1), и установите как %category_1%.

Сохранить правило

Вам нужно будет повторить этот процесс для каждого элемента, который вы хотите создать, чтобы создать элемент данных для извлечения переменной Adobe Analytics, хотя вам нужно только одно правило и одно условие для всех них. Код состояния будет таким:

_satellite.getVar('category_1');
_satellite.getVar('category_2');
//etc..
return true;

ПРИМЕЧАНИЕ. В DTM есть некоторые оговорки относительно порядка выполнения и загрузки/времени выполнения вещей. Частично это связано с характером асинхронной загрузки, но есть также -with-dynamic-tag/22387416#22387416">неверная маркировка порядка выполнения в документации (см. мою проблему № 2), которую Adobe подтвердила. По сути, вам, возможно, придется поиграть с параметром Инициировать правило в в правиле загрузки страницы, а не с тем, что вы установили в раскрывающемся списке «Загрузить код страницы Adobe Analytics в» в раскрывающемся списке. Раздел общей конфигурации Adobe Analytics Tool и надеемся на лучшее. Я настроил тестовую страницу, чтобы проверить все это в своем посте, и почти все, что я выбрал в любом из них, сработало, но тогда на моей тестовой странице практически ничего не было, кроме кода страницы DTM и ссылки.

person Crayon Violent    schedule 31.05.2014
comment
Ах ха! Хорошо, я вижу, к чему это идет. Большое спасибо @crayon - и дополнительные примечания о порядке выполнения также очень ценятся. Это объясняет некоторые другие странности, с которыми я столкнулся. - person Gyrfalcon2138; 02.06.2014

Очень интересный этот пост, всегда твои объяснения очень понятны @crayon. Кстати, вы знаете, как вызывать элементы данных в скрипте по сторонним тегам (непоследовательный HTML)? Я пытаюсь это сделать и, честно говоря, скучаю.

При использовании непоследовательного Java-скрипта я могу взять элемент данных, но мое намерение - передать значение элемента данных в пиксель изображения, например:

<img src="//t.qservz.com/tr.aspx?campaign=169779d3852b32ce8b1a1724dbf5217d&type=ppl&retmode=4&orderid=[[orderid]]&totalprice=[[totalprice]]&level=**ValueDataElement**&redirect_url=[[URL]]" border="0" width="1" height="1"><img style="border: 0;" width="1" height="1" src="https://tags.qservz.com/pixel?id=1901&type=img" />

Если вы можете мне помочь, я благодарен,

Юля.

person pujoljulia    schedule 04.06.2014