Как создать сайт или блог в 2020 году - бесплатное и простое руководство по созданию сайта

Новые пользовательские типы событий Adobe DTM и pushState / hashChange

Значок ценника - разрушительная реклама

На прошлой неделе флагманская команда Adobe Dynamic Tag Management добавила несколько интересных новых функций в правила DTM, основанные на событиях. Для правил на основе событий вы можете использовать два новых типа событий.

  1. персонализированные
  2. pushState или hashchange

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

Сначала давайте определим пользовательское событие. Давайте посмотрим на некоторые примеры других основанных на событиях правил в DTM. Ниже приведен список типов событий для правил на основе событий.

adobe-dtm-event-list "width =" 203 "height =" 453 "srcset =" https://blogging-techies.com/wp-content/uploads/2020/04/Nuevos-tipos-de-eveos-personalizados -de-Adobe-DTM-y-pushState.jpg 203w, https://www.disruptivestatic.com/wp-content/uploads/2015/07/adobe-dtm-event-list-134x300.jpg 134w "размеры =" (максимальная ширина: 203px) 100vw, 203px

При создании правила на основе событий вы можете настроить его для определенных событий по умолчанию. Каждый браузер (включая Internet Explorer) имеет события по умолчанию, которые могут запускаться для определенных действий. Некоторые из простых:

  • щелчки мыши
  • наведите курсор мыши (завис над чем-то на странице)
  • фокус поля формы (курсор находится внутри поля формы)
  • поле формы размыто (курсор покидает поле формы)
  • отправка формы
  • и т.д.

Все это имеет смысл; это вещи, которые мы делаем каждый день в Интернете. Иногда вам нужно что-то отслеживать, и это почти невозможно сделать правильно. Вот почему я люблю использовать события JavaScript. Думайте о событии как о радиоволнах. Они транслируются для всех, чтобы услышать, но вы должны настроиться на правильную частоту, чтобы услышать их. Если вы вещаете, а никто не слушает, это не имеет большого значения (не говорите радио-рекламодателям). То же самое относится и к событиям – оно может вызвать событие и не вызовет никаких проблем или не выдаст ошибок, если его ничего не слушает. И если вы услышите событие, которое никогда не произойдет, оно не вызовет никаких проблем и не выдаст ошибки.

Почему это важно? Одним из старых способов отслеживания действий было создание пользовательской функции JavaScript с последующим ее вызовом или реализация очень специфического набора кода, специфичного для системы управления тегами или другой кодовой базы. Но что, если эта функция была каким-то образом удалена или переименована? Вы получите ошибки JavaScript, которые иногда могут сломать сайт. События решают эту проблему.


Если вы знакомы с правилами прямого вызова DTM, у вас может возникнуть вопрос: почему бы не использовать правило прямого вызова? Правильный вопрос: проблема в том, что правила прямого вызова создают зависимость в DTM. Если я разработчик и кто-то говорит мне, чтобы я вставил в мой код код, который ссылается на _s satellite.track, я бы поставил под сомнение это и, скорее всего, сказал бы «нет». Вместо этого вы можете использовать событие, которое не имеет зависимостей.

Чтобы прослушать событие, вы должны сначала его активировать. Разработчики должны определить события в коде сайта. Определить, когда и где его использовать, может быть немного сложно, но общее практическое правило заключается в том, что если это то, что вы хотите отследить, и вы не можете отследить это с помощью предопределенного типа события DTM, используйте пользовательское событие. Мы можем найти хорошую информацию о том, как это сделать на Mozilla. Существует 2 основных типа событий:

  • Событие: запускает событие, не отправляя дополнительные данные о событии.
  • CustomEvent: добавить некоторые данные в событие

Я буду использовать пример с пользовательским событием, поскольку они позволяют добавлять данные. Предположим, у нас есть корзина для покупок, и когда вы добавляете что-то в корзину, вы используете AJAX. Это означает, что новая страница не загружается, но вместо этого может появиться всплывающее окно или сообщение о том, что товар был добавлен в корзину. Когда это происходит, я могу создать собственное событие, которое точно скажет, что было добавлено:

var addToCart = new CustomEvent('addToCart', 'detail': {'product_id': data.product.sku, 'quantity': data.product.quantity, 'price': data.product.price.fullPrice});
document.getElementById('minicart').dispatchEvent(addToCart);

В приведенном выше коде вы можете видеть, что я ссылаюсь на данные из объекта под названием «данные». Я определяю пользовательские «подробные» данные как объект, к которому я могу обратиться при прослушивании события. После создания события я запускаю его для определенного элемента, в данном случае для элемента на странице с идентификатором «minicart». Теперь у меня есть специальное мероприятие, которое транслируется для всех, кто хочет слушать.

Далее я настрою правило для прослушивания в DTM:

  1. Добавить новое правило на основе событий
  2. Дать ему имя
  3. Выберите «пользовательский» тип события и введите имя события, которое мы определяем как «addToCart»
    Пользовательский тип события "width =" 539 "height =" 164
  4. Определите метку или элемент, который будет иметь это событие. Используя селекторы CSS, это будет "#minicart"
    Выборщик пользовательских событий DTM "width =" 225 "height =" 101
  5. Установите правило. Вот где это становится здорово. Вы можете использовать «детали», которые были предоставлены в событии, и вы даже можете использовать его как объект. СПАСИБО ADOBE! Здесь я отправляю событие Google Analytics с данными, которые я хочу. Вы можете ссылаться на данные, используя% event.detail%, или, если у вас есть объект, вы можете ссылаться на него как% event.detail. <>%. Смотрите пример ниже.
    Динамические элементы данных для пользовательских событий. "Width =" 625 "height =" 284
    Вероятно, я бы никогда не отправил подобное событие, но вы понимаете, как его можно использовать. И если вам нужно использовать его в пользовательском коде, например, для инструмента Adobe Analytics, вы можете ссылаться на него как _s satellite.getVar ("% event.detail.product_id%"). УДИВИТЕЛЬНЫЙ СОУС !!!

Это не был роман, но я хотел показать, насколько удивительна эта функция. Как бы мне ни нравились правила прямого вызова, в моих реализациях они выполняются в фоновом режиме, а пользовательские события – ружье.

PushState

Теперь давайте посмотрим на pushState. В основном это позволяет обновлять URL-адрес страницы / сайта без необходимости загрузки новой страницы. Это само по себе ничего не делает, но позволяет использовать одностраничные приложения. Есть несколько платформ, которые используют эту функцию. Так что, если ваш сайт построен таким образом, функция pushState может быть действительно полезной!

Конечно, при настройке правила вы выберете новый тип события.

Тип события DTM pushState или hashchange "width =" 217 "height =" 163

Для лучшего определения CSS-селекторов не требуется. Тем не менее, вы захотите увидеть некоторые условия. Если вы просто просматриваете новый URL, вы будете использовать путь. Вот и все!

hashchange

Благодаря Twitter Мы все знаем, что такое хеш (хеш-теги), поэтому хеш-обмен должен относиться к изменению хеша. Хорошая вещь в хэше состоит в том, что вы можете изменить его столько раз, сколько захотите, и это не сделает загрузку страницы. Хеширование может быть использовано для многих целей, поэтому мы не увидим причин, по которым кто-то может это сделать. До появления pushState нередко обновляли хэш новым контентом для сайтов AJAXy или одностраничных сайтов.

Чтобы настроить новое правило, выберите тот же тип события, что и pushState. Разница лишь в том, что теперь вы можете видеть хэш в качестве критерия. Например:

Хеш-условие Adobe DTM "width =" 393 "height =" 160

Adobe DTM – лучшая система управления тегами, и, к счастью для ваших клиентов Adobe, она бесплатна! Используйте эти полезные советы, чтобы использовать свои силы и потенциал, и заходите почаще, чтобы узнать больше! Если вам нужна помощь в анализе вашего веб-сайта, свяжитесь с нами, и мы вышлем вам бесплатное предложение о том, как мы можем вам помочь.