Подключение пикселя партнерки через GTM

Недавно столкнулся с задачей интеграции партнерки на сайт, используя Google Tag Manager. По сути ничего сложного — нужно загрузить один пиксель на всех страницах сайта и второй пиксель на целевое действие пользователя, в данном случае на отправку формы. Нюанс лишь в том, что нужно учитывать атрибуцию трафика: партнерка работает по модели «Last Paid Click». Это означает что при повторных посещениях с бесплатных источников трафика, пиксель партнерки все равно должен сработать при отправке формы. Решения не нагуглилось, поэтому опишу подробнее. 

  1. Создаем переменную в которую будет записываться значение метки utm_source                                                     
  2. Аналогично созадим переменнную с идентификатором партнерки, в данном случае это click_id 
  3. Создаем тег типа Custom HTML в котором запишем в куку значением из utm_source 
    <script>
    var cookieName = "utm_source";
    var cookieValue = {{utm_source}};
    var cookiePath = "/";
    var expirationTime = 2592000; // 1 месяц в секундах
    expirationTime = expirationTime * 1000; // конвертация в миллисекунды
    var date = new Date();
    var dateTimeNow = date.getTime();
    date.setTime(dateTimeNow + expirationTime);
    var expirationTime = date.toUTCString();
    document.cookie = cookieName+"="+cookieValue+"; expires="+expirationTime+"; path="+cookiePath;
    </script>
    В качестве триггера выбираем pageview с дополнительным условием utm_source не должно быть равно значению undefined
  4. Создаю аналогичный тег с идентификатором партнерки 
    <script>
    var cookieName = "click_id";

    var cookieValue = {{click_id cityads url}};
    var cookiePath = "/";
    var expirationTime = 2592000; // 1 месяц в секундах
    expirationTime = expirationTime * 1000; // конвертация в миллисекунды
    var date = new Date();
    var dateTimeNow = date.getTime();
    date.setTime(dateTimeNow + expirationTime);
    var expirationTime = date.toUTCString();
    document.cookie = cookieName+"="+cookieValue+"; expires="+expirationTime+"; path="+cookiePath;
    </script>
    Триггер pageview с дополнительным условием что переменная utm_source равна cityads.
  5. Теперь нам нужно создать еще две переменные click_id и utm_source только значения они должны брать не из url а из созданных нами кук. Переменная типа 1st-Party Cookie ставим имена созданных нами кук
  6. Остается загрузить пиксель на целевое действие. Тег также Custom HTML. Код пикселя даст ваш менеджер в партнерке. В этот код подставляется значение переменной из предыдущего шага с идентификатором партнерки. Триггером служит pageview с дополнительными условиями Page URL равно посадочной странице куда пользователь попадает после успешной отправки формы, и значение utm_source из переменной из куки равно cityads

Таким образом получается что при первом входе на сайт с метками партнерки, их значение запишется в куки. Если пользователь впоследствии придет с другого источника с иными метками, то значение utm_source в куке обновится и тогда при отправке формы пиксель не загрузится. Тоже самое произойдет если срок действия куки истечет.

Если же пользователь придет на сайт без меток, то кука utm_source не будет перезаписана и тогда при отправке формы пиксель будет загружен.

В следующем посте расскажу как аналогичную задачу для ecom магазина решал через отправку postback запросов

Подключение пикселя партнерки через GTM: 3 комментария

  1. stas

    Олег, спасибо за статью.
    Если отслеживать событие успешного оформления заказа, я так понимаю, поменяется только триггер?
    Пункт 2 ваших действий «Аналогично созадим переменнную с идентификатором партнерки, в данном случае это click_id » — применяется переменная с типом URL, тип компонента — Запрос , но ключ запроса вместо utm_source будет click_id, Верно?
    Какие еще могут быть отличия от предложенного Вами алгоритма для отслеживания успешного оформления заказа?

  2. Анна

    Этот триггер прослушивает submit формы и когда происходит конверсия, передает событие gtm.formSubmit. Когда срабатывает событие gtm.formSubmit можно, например, отправить событие в Google Analytics. Повторяем действие с отправкой формы, но уже без заполненных полей: если триггер не срабатывает, значит программисты молодцы и можем настраивать отправку форм через данный функционал.

Добавить комментарий для Анна Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *