Как можно реализовать плагин getLoadTime в Adobe DTM?

Где я могу сделать начальный вызов функции s_getLoadTime(). Моя библиотека находится под управлением Adobe.

https://marketing.adobe.com/resources/help/en_US/sc/implement/getLoadTime.html


person Excrytal    schedule 25.02.2015    source источник


Ответы (3)


Шаг 1. Добавьте плагин и код запуска таймера

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

Затем в разделе Javascript/сторонние теги нажмите «Добавить новый скрипт». Установите для параметра Тип значение "Последовательный Javascript" и установите флажок Выполнять глобально.

В поле кода вставьте следующий код:

// this is for older browser support
var inHeadTS=(new Date()).getTime();

// plugin
function s_getLoadTime(){if(!window.s_loadT){var b=new Date().getTime(),o=window.performance?performance.timing:0,a=o?o.requestStart:window.inHeadTS||0;s_loadT=a?Math.round((b-a)/100):''}return s_loadT}

// call plugin first time 
s_getLoadTime();

Нажмите Сохранить код, а затем Сохранить правило.

Шаг 2. Выполните второй вызов подключаемого модуля и назначьте переменные Adobe Analytics

Затем вам нужно Правило загрузки страницы, которое должно срабатывать в нижней части страницы. Если у вас уже есть существующее правило, которое вызывает загрузку каждой страницы внизу страницы, вы можете использовать его. Если нет, то создайте новый.

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

_satellite.setVar('loadTime',s_getLoadTime());
return true;

Затем в разделе правила Adobe Analytics вы можете установить для свойства и/или eVar значение %loadTime%.

Примечание. Использование правила, настроенного на срабатывание при загрузке, будет технически более точным. Однако в настоящее время DTM не предлагает возможность запускать загрузку Adobe Analytics (параметры доступны только для верхней или нижней части страницы), поэтому, если вы установите правило «Загрузка», оно сработает после того, как AA сделает запрос, поэтому ваши переменные не будут заполняется и отправляется в этом запросе. Если вы действительно хотите сохранить точность, вам нужно будет изучить другие варианты, например реализовать сглаживание в виде стороннего скрипта, чтобы иметь больший контроль над тем, когда он срабатывает.

Нажмите Сохранить правило, а затем нажмите «Утвердить/опубликовать» после проверки.

person Crayon Violent    schedule 04.03.2015

На самом деле вопрос должен звучать так: «Зачем вообще использовать подключаемый модуль getLoadTime()?». Яшо, я начал с того же вопроса, что и у вас, и вслепую внедрил подключаемый модуль в Adobe DTM, следуя инструкциям на странице https://marketing.adobe.com/resources/help/en_US/sc/implement/getLoadTime.html

Только начав анализировать данные, я заглянул в плагин, чтобы посмотреть, что он делает.

Ниже приведен улучшенный код плагина:

function s_getLoadTime() {
    if (!window.s_loadT) {
        var b = new Date().getTime(),
            o = window.performance ? performance.timing : 0,
            a = o ? o.requestStart : window.inHeadTS || 0;
        s_loadT = a ? Math.round((b - a) / 100) : ''
    }
    return s_loadT
}

Итак, в основном функция записывает s_loadT один раз и только один раз. Первый вызов (вверху страницы) устанавливает значение, и любой последующий вызов функции вернет то же значение, поскольку оно было сохранено в window.s_loadT.

Почешите немного голову и задайте очевидный вопрос: «Так что же это все-таки измеряет?» В лучшем случае он измеряет разницу между window.performace.timing.requestStart и timeStamp при первом вызове функции. В худшем случае он измеряет разницу между отметкой времени, установленной в заголовке документа с помощью javascript (и эта разница вполне может быть отрицательным числом). Или, что еще хуже, если «a» преобразуется в 0, вы просто получите «b», что будет огромным числом.

Если вы следуете указаниям и вызываете getLoadTime() вверху документа (правило верхнего уровня страницы DTM), вы на самом деле просто измеряете, сколько времени требуется для срабатывания правила верхнего уровня страницы. Если вы помещаете первый вызов в верхнюю часть вашего s_code.js, вы просто измеряете, сколько времени требуется для загрузки (и выполнения) s_code.js.

person Stewart Schilling    schedule 14.10.2015
comment
Итак, вы пришли к результату, обеспечивающему большую точность, чем функция s_getLoadTime? Подключаемый модуль синхронизации s.performance выглядит многообещающе marketing.adobe.com/ ресурсы/помощь/en_US/sc/implement/ - person Chris; 24.03.2017

13 апреля 2021 г. — серверы DTM переходят в спящий режим, проверьте временная шкала Пришло время перейти на Adobe Launch и использовать расширение Common Analytics.
После получения времени загрузки страницы классифицируйте это, чтобы сделать его релевантным, используйте для этого Rule Builder и используйте Регулярное выражение

person shamshul2007    schedule 03.03.2015