Инструкция

Как настроить товарные рекомендации в рассылках

Улучшенная персонализация писем и триггеры для интернет-магазинов
Зачем нужны товарные рекомендации
Товарные рекомендации нужны для персонализации рассылки и увеличению CTR.

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

Подробнее о товарных рекомендациях

Для того, чтобы рекомендации на вашем сайте работали корректно, необходимо провести настройку в несколько этапов.
Настройка рекомендаций в Mailganer
Шаг 1. Настройка кода

Зайдите в СпискиНастройки списка Магазинам → Триггеры для интернет-магазинов.

В этом разделе указаны все коды, которые нужно установить на сайт:
Добавьте в код своего сайта js-коды для рекомендаций. Рядом с каждым пунктом указано, на какую страницу или кнопку их установить. Чтобы посмотреть код для вставки — нажмите на кнопку «Показать»:
Ваш личный код интеграции находится в разделе «Магазинам»:
Его нужно подставить в основной код рекомендаций:
Мы можем установить все необходимые коды для товарных рекомендаций за вас. Услуга платная и зависит от сложности кода сайта. Чтобы заказать установку кода — напишите нам на recomend@mailganer.com.
Статус рядом с каждым кодом показывает, когда было обновление по этой рекомендации. Другими словами, когда система заметила последние действие пользователя по этому скрипту (просмотр карточки товара, добавление в корзину и другие).
Шаг 2. Настройка фида и периода обновления

После в том же разделе под таблицей нужно указать ссылку на интернет магазин и ссылку на фид с товарами.
Фид нужен, чтобы мы смогли подставлять товары в вёрстку письма.

Обычно у интернет-магазинов уже есть готовый фид, если они работают на одной из CMS-систем («1С Битрикс», Insales и других).

А период обновления — это параметр, который «говорит» Mailganer, как часто нужно «заглядывать» в фид и обновлять информацию о товарах (изменение цены, характеристик, описания и наличия).
Вы также можете добавить имейл для отправки себе тестов писем. Это нужно, чтобы проверить, корректно ли настроены рекомендации, не слетает ли вёрстка и не вылезают ли другие проблемы.
Важно: во время тестирования вам отправляются все рассылки, срабатывающие по заданным триггерам в зависимости от действий пользователей на сайте.

Люди будут ходить по сайту, добавлять товары в корзину, смотреть карточки, а письма отправятся вам, а не им. Владельцу сайта не обязательно самому повторять алгоритмы, которые спровоцируют триггер.
Шаг 3. Проверка созданных триггеров

После всех настроек в разделе «Рекомедации» появляется готовый список триггеров, каждый из которых можно редактировать и посмотреть историю отправок:

Запуск триггера c рекомендациями из шаблона

При создании письма вы можете выбрать один из готовых шаблонов товарных рассылок или загрузить собственный, чтобы его можно было быстро отредактировать.
Вы также можете создать собственный дизайн в блочном редакторе, используя готовые строки «Триггеры для интернет-магазина»  — готовые полосы с товарными блоками рекомендаций в разных комбинациях.

Приоритеты триггеров

Все триггеры ранжированы по степени вовлеченности посетителя и предполагаемой конверсии:

1 — брошенная корзина
2 — брошенный поиск
3 — брошенный просмотр
4 — брошенная категория

Логика такая: «тёплые» клиенты, которые уже добавили что-то в корзину, с высокой вероятность закончат оформление заказа. Значит, им и нужно отправлять напоминание в первую очередь.

Самые «холодные» — те, кто даже не открыл карточку товара, а только посмотрел категорию.

Если есть сразу несколько событий для отправки триггерного письма, то отправится только то, что «важнее» (стоит выше по рангу).
Товарные переменные и массивы товаров
Для корректной работы товарных рекомендаций необходимо учитывать переменные, «привязанные к товарам» и действия с ними. Для этого используются особые переменные и массивы товаров.

Поддерживаемые переменные о товаре

Массивы товаров

Есть два типа массива товаров, которые можно использовать в письмах с товарными рекомендациями:

s-products — фактические товары, с которыми взаимодействовал клиент = причина рекомендаций.

Например, то, что было добавлено в корзину («Брошенная корзина») или товары, который человек смотрел, но потом ушёл с сайта («Брошенный просмотр»).

r-products — товары, которые рассчитывает система для рекомендаций на основе s-products = рекомендуемые товары.
Пример вёрстки товарного блока
Чтобы вывести товары в вёрстке, нужен оператор цикла. Внутри цикла подставляются переменные о товаре. Ниже приводим синтаксис на примере массива с исходными товарами {% for product in s_products %}...{% endfor %}.
<html>
 <body>
   ...
   <h2>Товары в корзине</h2>

   {% for product in s_products %} //начало цикла, в каждой итерации берётся следующий элемент из массива s_products
   <div>
     <p><a href="{{ product.url }}"><img src="{{ product.image_url }}"/></a></p>
     <p>{{ product.name }}, {{ product.amount }} шт., {{ product.price }} руб.</p>
   </div>
   {% endfor %} //конец цикла

   <h2>Рекомендуем посмотреть</h2>

   {% for product in r_products %} //начало цикла, в каждой итерации берётся следующий элемент из массива r_products
   <div>
     <p><a href="{{ product.url }}"><img src="{{ product.image_url }}"/></a></p>
     <p>{{ product.name }}, {{ product.price }} руб.</p>
   </div>
   {% endfor %} //конец цикла

   ...
 </body>
</html>

Использование оператора if

У товара есть 2 цены: до скидки и после. Предположим, что не у всех товаров есть цена до скидки (другими словами не на все товары есть скидка). Тогда в вёрстке нужно использовать проверку {% if product.oldprice %}
{% for product in r_products %}
...
  <p>
    Цена:
    {% if product.oldprice %}<strike>{{ product.oldprice }} руб.</strike>{% endif %}
    {{ product.price }} руб.
  </p>
...
{% endfor %}
Важно при подготовке вёрстки не вставлять оператор {% for %} или {% if %} между тегами <table> и <td>. Иначе при сохранении письма операторы автоматически переместятся перед <table> и вёрстка «поедет».

Использование переменной forloop.first или forloop.last

Используемая ниже конструкция {% if forloop.first %} будет срабатывать для первого элемента в массиве, а конструкция {% if forloop.last %} — для последнего. Это может быть полезно, когда все товары кроме последнего разделены между собой горизонтальной полосой.
{% for product in r_products %}
   <div>...</div>
   {% if not forloop.last %}<hr/>{% endif %}
{% endfor %}

Использование переменной forloop.counter

Переменная {{ forloop.counter }} выводит текущий счётчик цикла. Например, его можно использовать для отображения в письме количества товаров в корзине.
{% for product in s_products %}
   <div>...</div>
   {% if forloop.last %}В корзине {{ forloop.counter }} товаров{% endif %}
{% endfor %}
Другой пример, если требуется в строго ограничить количество отображаемых товаров до 6. При этом по 3 товар в каждом ряду.
<table>
  <tr>
    {% for product in r_products %}
      {% if forloop.counter <= 3 %}
        <td>...</td>
      {% endif %}
    {% endfor %}
  </tr>
  <tr>
    {% for product in r_products %}
      {% if forloop.counter > 3 and forloop.counter <= 6 %}
        <td>...</td>
      {% endif %}
    {% endfor %}
  <tr>
</table>
Вот так выглядел бы тот же самый пример, только оптимизированный с точки зрения использования количества циклов.
<table>
  <tr>
    {% for product in r_products %}

      {% if forloop.counter <= 3 %}
        <td>...</td>
      {% endif %}

      {% if forloop.counter == 3 %}
  </tr>
  <tr>
      {% endif %}
  
      {% if forloop.counter > 3 and forloop.counter <= 6 %}
        <td>...</td>
      {% endif %}

    {% endfor %}
  <tr>
</table>

API для передачи данных о заказах

Даже когда фид товаров успешно настроен, остается риск пропустить действие клиента с товаром. Иногда Adblock и другие программы блокируют на сайте сторонние скрипты и java, на которой работают триггеры.

Логично, что если клиент добавил товар в корзину и совершил заказ, то ему не нужно отправлять триггер «Брошенная корзина». Но если скрипты были заблокированы, то код не сработал, фид не обновился и Mailganer не увидел информацию о том, что человек уже купил товары.

В этом случае человек, уже оформивший заказ, получает письмо с «Брошенной корзиной», не понимает, что произошло и перестает доверять интернет-магазину.

Важно понимать, что это не проблема на стороне Mailganer, а ограничение технологии которое иногда блокируется браузерами. Такое бывает. Если мы не отловим брошенный просмотр — это не страшно, но вот ситуация с корзиной будет неприятной.
Поэтому мы рекомендуем передавать данные через API.

Наш API для сбора данных по заказам передаёт всю информацию о покупках в Mailganer напрямую. Так мы точно понимаем, кому из пользователей не нужно отправлять триггеры с напоминаниями.
Товарные рекомендации — это платный модуль, который покупается в дополнение к основному тарифу Mailganer. Стоимость зависит от трафика на сайте.