...

понедельник, 20 апреля 2015 г.

Система отзывов для интернет-магазинов — Cackle Reviews

Всем привет! Сегодня мы расскажем о том, что именно должна делать хорошая система сбора отзывов для гарантированного поднятия конверсии сайта на примере нашего продукта – системы сборы отзывов Cackle Reviews. Первый релиз состоялся в ноябре 2013. За полтора года существования у нас появилось порядка 200 клиентов (из которых 150 – интернет-магазины) и чёткое представление о том, какие возможности системы отзывов честно влияют на рост конверсии:

1. Автоматическая индексация отзывов с микроразметкой рейтинга schema.org/review;
2. Импорт отзывов из Яндекс.Маркета;
3. Рассылка follow-up писем после покупки с приглашением оставить отзыв;
4. Трансляция отзывов в социальные сети;
5. СПАМ-тест (mail-tester.com) с результатом не ниже 9/10 баллов.

Как это всё работает в Cackle Reviews – под катом.

система отзывов для интернет-магазина

1. Индексация в Google с микроразметкой рейтинга


Микроразметка рейтинга – это определённый формат данных для того, чтобы Google понимал и отображал в результатах поиска ссылки на ваш сайт вместе с красивыми оранжевыми звёздочками, рейтингом и количеством отзывов.
Cackle Reviews

В Cackle Reviews это работает автоматически. Cackle Reviews, при установке на любую страницу сайта, скажет Google, что данную страницу надо индексировать с микроразметкой. А самое главное «It's Just JavaScript™», то есть не нужны никакие дополнительные настройки в виде синхронизации отзывов в локальную БД или плагины для CMS. Работает это благодаря тому, что Google индексирует JavaScript.

Проверка в Google Testing Tool


Чтобы убедиться, что Google будет индексировать ваш сайт с микроразметкой, есть специальный валидатор Google Testing Tool. Так как Cackle Reviews работает через JavaScript, то вам нужно не просто скопировать адрес страницы с отзывами, а открыть консоль браузера (например в Chrome это Ctrl + Shift + C), перейти на вкладку Elements и скопировать весь код страницы в окно 1 валидатора, кликнуть «ПРОВЕРИТЬ». Если ошибок нет и в результате отображается рейтинг (значения для примера):
aggregateRating [AggregateRating]:
    ratingValue:      4.5
    reviewCount:    3

То всё ок!

Живой пример


В Google найдите текст «Достоинства: Отличные часы, стоят того Комментарий: модель превосходна» – первая ссылка http://ift.tt/1GcjZCQ (наш клиент), сбоку "Рейтинг: 4,5 — ‎4 отзыва". Перейдём на эту страницу, снизу система сбора отзывов Cackle Reviews. Далее откроем страницу в HTML-виде и видим, что отзывов в коде нет, а это значит, что индексация с микроразметкой работает через JavaScript и вам не нужно производить дополнительную настройку: сохранение отзывов в локальную БД или подтягивание стороннего HTML.
микроразметка рейтинга
Ещё примеры индексации с микроразметкой на js (искать в Google):

site:kinderus.ru на основе отзыва
site:unizoo.ru на основе отзыва
site:mirgeeka.ru на основе отзыва
site:afilot.ru на основе отзыва
site:yarcom.ru на основе отзыва
site:shveiburg.ru на основе отзыва


Детали реализации


Google индексирует JavaScript с микроразметкой schema.org/review. Поэтому в виджете, при отрисовке HTML, достаточно просто поддерживать данный формат.
Вкратце о том, что по-минимуму должно быть в HTML для корректного понимания микроразметки в Google

1. Информация о продукте

<div itemscope itemtype="http://ift.tt/GXPmjp">
  <meta itemprop="category" content="Mobile">
  <meta itemprop="brand" content="Apple">
  <meta itemprop="name" content="iPhone 6 Plus 128GB">
  <meta itemprop="image" content="http://ift.tt/1GcjZCU">
</div>

2. Информация о рейтинге

<span itemprop="aggregateRating" itemscope itemtype="http://ift.tt/GXOCyu">
  <span itemprop="ratingValue">4.5</span>    <!-- рейтинг -->
  <span itemprop="reviewCount">7</span>    <!-- количество отзывов -->
</span>

3. Информация о рейтинге каждого отзыва

...
<li itemprop="review" itemscope="" itemtype="http://ift.tt/GXOE9L">
  <span itemprop="reviewRating" itemscope="" itemtype="http://ift.tt/PTuq4i">
    <meta itemprop="ratingValue" content="5">   <!-- рейтинг -->
  </span>
  ...
  <a href="..." itemprop="author">Чак Норрис</a>   <!-- автор -->
  ...
  <meta itemprop="datePublished" content="2015-04-10T12:06:17">   <!-- время публикации отзыва -->
  ...
</li>
...


PS: Значения даны для примера.

2. Сбор отзывов с Яндекс.Маркета


Отзывы – проверенное и недорогое решение для увеличения конверсии сайта. Склонить пользователя написать отзыв трудно, поэтому лучше взять готовые, например с Яндекс.Маркета. Выгоды для вас:
  • Ценный и проверенный контент, дающий дополнительный трафик на сайт;
  • Достоверные отзывы с отметкой источника (отзыв с Яндекс.Маркета) помогают потенциальному покупателю быстрее определиться с покупкой и повышают доверие к вашему Интернет-магазину.

Отзывы с Яндекс.Маркета

Сбор отзывов с Яндекс.Маркета в Cackle Reviews


Сначала надо получить ключ Яндекс.Маркета для доступа к API загрузки отзывов, указав его в форме Cackle Reviews и IP-адрес нашего сервера (cackle.me). Сохранить ключ в панели администрирования Cackle (вкладка «Отзывы», меню «Настройка»).

Для сбора отзывов загрузите товары из вашего интернет-магазина в Cackle, используя API:

HTTP-метод Endpoint Ограничение
POST http://ift.tt/1aKzSSU 2 раза в минуту
Параметр Описание
id Идентификатор вашего виджета
siteApiKey Секретный ключ виджета.
accountApiKey Секретный ключ аккаунта
products Список товаров в формате JSON
У каждого товара должен быть проставлен специальный параметр ymId, принимающий значение modelId из Яндекс.Маркета.

Пример товара (параметр products):
[{
  "prodId": "12345",
  "ymId": "11031822",
  "chan": "/product/12345/",
  "url": "http://ift.tt/1aKzSSW",
  "name": "Смартфон Apple iPhone 6 Plus 128Gb",
  "photo": "http://ift.tt/1Gck1L7",
  "price": "65500"
}]


prodId – id товара из вашей БД
chan – канал для связки отзывов со страницей сайта (подробнее)
url – страницы, где будут отзывы

Демонстрация на сайтах клиентов: delonghi.club, shveiburg.ru, mrklimat.ru.

Разработчикам: детали реализации


Функционал написан на Java, Spring и Hibernate. Оперирует с 4 основными таблицами БД, более подробно – в спойлере.
О технической реализации сбора отзывов с Яндекс.Маркета в Cackle Reviews
review_ym_cursor – информация о модели (modelId), количество загруженных и всех отзывов с Маркета ("курсор")
review_ym – отзывы в формате Яндекс.Маркета
review_product – загруженные товары + информация о количестве конвертированных отзывов из review_ym в review
review – отзывы в формате Cackle


Работает последовательно:

1. Добавляем товар


Клиент вызывает API добавления товара с заполненным ymId. Товар добавляется в таблицу review_product, в review_ym_cursor создается новая запись с идентификатором данного сайта, товара и модели в Яндекс.Маркете.

2. Загрузчик отзывов в формате Яндекс.Маркета


Запускается функция, которая вызывает API Маркета и получает первые 10 отзывов, сохраняя их в промежуточную таблицу review_ym в формате Яндекс.Маркета. В таблицу review_ym_cursor сохраняется общее количество скачанных отзывов (поле recd) по данной модели и сайту + сколько отзывов всего (поле total).

3. Конвертация отзывов в формат Cackle


Запускается функция, которая берёт Маркет-отзывы из таблицы review_ym и сохраняет их в отзывы в формате Cackle Reviews в таблицу review. В таблицу review_product записывается общее количество конвертированных отзывов (поле conv), чтобы в следующий раз начать с нужного места.

4. Следующие отзывы


В ночное время происходит автоматический вызов двух процессов:

Первая выполняет пункт 2 для всех записей из review_ym_cursor, у которых recd < total.
Вторая выполняет пункт 3 для всех записей из review_product, у которых conv < review_ym_cursor.recd.

В итоге скачиваются новые 10 Маркет-отзывов, а потом конвертируются в Cackle-формат. Это выполняется до тех пор, пока review_ym_cursor.recd < review_ym_cursor.total и review_product.conv < review_ym_cursor.recd соответственно.

Есть и третий процесс. Он проверяет для моделей, у которых review_ym_cursor.recd == review_ym_cursor.total (всё скачано), не появилось ли новых Яндекс.Маркет-отзывов и если появились, то обновляет total.

Основная идея данной реализации – это независимое выполнение двух функций: загрузка Маркет-отзывов (пункт 2) и конвертация в Cackle-отзывы (пункт 3). Меньше каплинга – меньше проблем.

3. Follow-up письма после покупки с приглашением оставить отзыв


Собирать отзывы нужно не только с Яндекс.Маркета, но и от реальных покупателей. Допустим, пользователь приобрёл какой-то товар в интернет-магазине. Через несколько дней на свой email он получает письмо с просьбой оставить отзыв о ранее купленном товаре. Такие письма называются follow-up и Cackle Reviews умеет отправлять их автоматически.

Уникальность Cackle Reviews в том, что ссылка «Оставить отзыв» в follow-up письме ведёт именно на страницу купленного товара интернет-магазина (а не на сайт системы сбора отзывов, как во всех других подобных системах) и при переходе форма написания отзыва открывается автоматически с уже авторизованным пользователем.

Интеграция follow-up рассылки с интернет-магазином


Загрузка заказов


Для рассылки follow-up писем по покупателям необходимо загрузить заказы из вашего интернет-магазина в Cackle. Это делается с помощью API:
HTTP метод Endpoint Ограничение
POST http://ift.tt/1GcjZTk 1 раз в 5 секунд
Параметры аналогичные API загрузки товаров, за исключением параметра products, вместо него orders.

Пример заказа (параметр orders):

[{
"orderId": "123",
"created": 1426330626814,
"modified": null,
"notify": 1426330626814,
"paid": true,
"deliver": true,
"notified": false,
"user": {
  "id": "775",
  "name": "Дмитрий Иванов",
  "email": "dmivanov@mailforspam.com"
},
"products": [{
  "prodId": "12345",
  "ymId": "11031822",
  "chan": "/product/12345/",
  "url": "http://ift.tt/1aKzSSW",
  "name": "Смартфон Apple iPhone 6 Plus 128Gb",
  "photo": "http://ift.tt/1Gck1L7",
  "price": "65500"
}]}]


//notify – параметр для безусловной отправки follow-up письма в указанную дату (миллисекунды);
//notified – если true, то по данному заказу уже было отправлено follow-up письмо, если false – нет;
//user – зарегистрированный на вашем сайте пользователь (единая авторизация, SSO), или вместо него может быть два параметра (email и name) для анонимного юзера.

Создание рассылки


Когда заказы загружены, необходимо создать рассылку с условиями отправки и шаблоном письма. Это можно сделать в панели администрирования Cackle (вкладка «Отзывы», меню «Рассылка»).

Follow-up письмо


Письмо состоит из нескольких частей. Редактируемые – отправитель, тема, логотип, тело письма (body), подпись (footer). Нередактируемые – товар или список товаров с названием, фото и ссылкой «Оставить отзыв».

Ссылка «Оставить отзыв» ведёт на страницу купленного товара интернет-магазина. Все служебные параметры, для открытия формы написания отзыва и автоматической авторизации пользователя, передаются в ссылке после хеша (#) в закодированном формате (MD5).

follow-up письмо с приглашением оставить отзыв

Если пользователь перешёл по ссылке «Оставить отзыв» и опубликовал его, то он будет помечен значком «Проверенный покупатель», который сигнализирует о том, что данный клиент действительно купил товар.
Система отзывов Cackle Reviews проверенный покупатель

Тестирование, отладка


У созданных рассылок есть кнопка «Тест», по клику на которую происходит мгновенная обработка найденных заказов и отправка follow-up писем. Например, можно загрузить несколько тестовых заказов с email-ми @mailforspam.com или @mailinator.com, а дальше тестировать отправку писем.

Автоматическое исполнение активированных рассылок происходит в ночное время с 01 до 06 часов по Москве.

Плагины для CMS


Рассылка follow-up писем работает автоматически в плагинах 1С-Битрикс и OpenCart. В ближайшее время планируем подключить данный функционал для Joomla (VirtueMart, K2, Zoo), PrestaShop и InSales.

4. Трансляция отзывов в социальные сети


Cackle Reviews поддерживает три типа авторизации: анонимная, социальная и единая с сайтом. Если пользователь выбирает социальную авторизацию и входит через ВКонтакте/Мой Мир/Facebook/Twitter, то его отзыв автоматически попадает на стену социальной сети со ссылкой на сайт. Выгоды для интернет-магазина:
  • Привлечение дополнительного трафика из социальных сетей;
  • Повышение доверия сайта среди друзей пользователя.

Функционал доступен для тестирования на странице демонстрации решения.

Реализация


У каждой соц.сети свой API кросспостинга сообщения на стену. Это API мы включаем в реализацию библиотек OAuth-авторизаций. В Cackle для таких библиотек используется Spring Social, только со своей имплементацией для каждой социальной сети. Это очень удобно, так как многое Spring Social делает за вас, например, поддержка стандартов OAuth 1.0 и 2.0, сохранение и обновление access, refresh-токенов и expired.

5. СПАМ-тест


Возможно, кто-то не знает, но есть такой сервис проверки писем на СПАМ, как mail-tester.com. Результат его проверки – это количество балов от 1 до 10. Для системы сбора отзывов с follow-up рассылкой низкий бал означает, что покупатели просто не будут получать письма с приглашением оставить отзыв.

В следующем топике расскажем, про наш опыт настройки SMTP-сервера и как мы добились вот такого результата для Cackle Reviews:


Если вы хотите попробовать Cackle Reviews на своём сайте – welcome! Установка займёт не более 1 минуты.

Спасибо за внимание. Всем успехов!

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.

Комментариев нет:

Отправить комментарий