В моем предыдущем посте мы говорили о различиях в обнаружении событий между DTM и Запуск платформы Adobe Experience. Сегодня давайте поговорим о различиях в сохранении данных.

Во-первых, важно понимать, когда данные сохраняются в DTM и Launch. Самый известный случай, который мы рассмотрим, - это постоянство значений элементов данных. При создании элемента данных пользователь может выбрать один из следующих периодов хранения: просмотр страницы, сеанс или посетитель. Независимо от того, какой вариант был выбран для продолжительности хранения, каждый раз, когда элемент данных используется на веб-сайте, его значение будет всегда извлекаться из источника. Каждый раз. Этим источником может быть переменная JavaScript, элемент DOM, параметр строки запроса или что-то еще в зависимости от типа элемента данных, который использовался для элемента данных.

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

Мелкий шрифт: проверка на null или undefined, описанная выше, применима к запуску. В DTM проверка немного отличается.

Для тех, кто любит заглянуть под капот, вот код для этой логики в среде выполнения Launch.

Механизм сохранения для «хранения элементов данных» отличается в DTM и Launch. Посмотрим, чем они отличаются.

Печенье DTM +: вкусно, но с высоким содержанием жира

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

К сожалению, у файлов cookie есть довольно существенные недостатки для таких случаев, как DTM:

  1. Файлы cookie отправляются по каждому запросу, если домен, путь и другие параметры соответствуют тем, которые определены в файле cookie. Это означает каждый запрос HTML, каждый запрос изображения, каждый запрос сценария, каждый запрос AJAX и так далее.
  2. Максимальный размер файлов cookie составляет примерно 4 КБ (в зависимости от браузера), и существует ограничение на количество файлов cookie, которые могут храниться в одном домене. Клиенты столкнулись с этими ограничениями, что может привести к неожиданному поведению.

DTM использует файлы cookie для сохранения. Вот как DTM сохраняет значения элементов данных для каждого срока хранения элемента данных:

  • Просмотр страницы: значения элементов данных хранятся в переменной JavaScript внутри библиотеки. Если пользователь переходит на новую страницу или обновляет страницу, значение отбрасывается.
  • Сеанс: значения элементов данных сохраняются в файле cookie без директивы expires. Когда браузер закрывается, значение сбрасывается.
  • Посетитель: значения элементов данных сохраняются в файле cookie с директивой expires через два года в будущем. В идеале ценность будет сохраняться в течение двух лет, а затем будет отброшена.

Запуск + Интернет-хранилище: понравится даже детям

В Launch отказались от старого и пришли к новому. Поддержка старых браузеров была прекращена, что позволило запускать целевые браузеры, которые полностью поддерживают веб-хранилище (хранилище сеансов и локальное хранилище). Веб-хранилище было разработано для варианта использования Launch: сохранение клиентских данных на устройстве пользователя.

В отличие от файлов cookie, данные веб-хранилища не передаются на сервер, если вы активно не извлекаете данные из хранилища и не отправляете их. Он также имеет гораздо более высокий предел размера 5 МБ (опять же, в зависимости от браузера) и теоретически неограниченное количество элементов. Это отличные качества для сохранения данных в Launch.

Вот как Launch сохраняет значения элементов данных для каждого срока хранения элемента данных:

  • Просмотр страницы: значения элементов данных хранятся в переменной JavaScript внутри библиотеки. Если пользователь переходит на новую страницу или обновляет страницу, значение отбрасывается.
  • Сеанс: значения элементов данных сохраняются в хранилище сеанса. Когда вкладка браузера закрывается, значение сбрасывается.
  • Посетитель: значения элементов данных сохраняются в локальном хранилище. Значение будет сохраняться бесконечно.

Другие сохраненные данные

И DTM, и Launch также сохраняются, независимо от того, включена ли отладка. Отладку можно включить, запустив _satellite.setDebug(true); в консоли разработчика браузера или используя одно из различных расширений браузера, поддерживающих DTM или Launch. DTM и Launch хранят информацию о том, включена ли отладка, поэтому при отладке различных страниц своего веб-сайта или обновлении страницы вам не нужно повторно включать отладку.

И DTM, и Launch также сохраняют данные для некоторых условий, связанных с отслеживанием посетителей:

  • Целевая страница
  • Новый / вернувшийся посетитель
  • Просмотры страниц
  • Сессии
  • Время на сайте
  • Источник трафика

В Launch эти типы условий предоставляются расширением Core.

Базовые данные, обеспечивающие вышеуказанную функциональность, были перемещены из файлов cookie в веб-хранилище.

Где Launch хранит данные в веб-хранилище?

Вы можете найти содержимое веб-хранилища с помощью инструментов разработчика в любом из основных браузеров. В Chrome вы найдете веб-хранилище на вкладке "Приложение". В Firefox и Safari вы найдете его на вкладке «Хранилище». В Edge вы найдете его в средстве выбора ресурсов.

Каждый элемент данных в веб-хранилище состоит из ключа (или имени) и значения. Каждое значение элемента данных, которое хранит Launch, имеет ключ, который начинается с com.adobe.reactor.dataElements.. Флаг, указывающий, включена ли отладка, можно найти с помощью клавиши com.adobe.reactor.debug. Элементы данных, относящиеся к условиям отслеживания посетителей, имеют ключ, который начинается с com.adobe.reactor.core.visitorTracking..

Вы спросите, что вообще такое «реактор»? Это было кодовое название Launch до того, как наш отдел брендинга благословил название Launch. Мы продолжаем использовать его в наших технических деталях, чтобы не допустить возможных изменений в бренде.

Файлы cookie и веб-хранилище: другие заметные различия

При переходе от файлов cookie к веб-хранилищу следует иметь в виду еще несколько отличий:

  • Хотя существует некоторая гибкость в объявлении области cookie (например, какие поддомены могут получить к ней доступ), веб-хранилище всегда ограничено комбинацией протокола, имени хоста и номера порта (как определено в политике одного происхождения). страницы, на которой в данный момент находится пользователь. Другими словами, веб-хранилище для одного поддомена отделено от хранилища другого поддомена. Веб-хранилище для сайта, доставляемого по HTTPS, отличается от хранилища сайта, доставляемого по HTTP (еще одна причина всегда перенаправлять URL-адреса HTTP на HTTPS).
  • Сеансовые файлы cookie (файлы cookie без директивы expires) доступны во всех вкладках браузера и действуют, пока браузер остается открытым. Между тем, данные Session Storage ограничены вкладкой браузера и живут, пока вкладка браузера остается открытой.

Мы надеемся, что вам понравится новая и улучшенная функция сохранения данных в Launch! 🚀