Система отзывов для интернет-магазинов — 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, при установке на любую страницу сайта, скажет 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 найдите текст «Достоинства: Отличные часы, стоят того Комментарий: модель превосходна» — первая ссылка bestwatch.ru/watch/Frederique_Constant/FC335MC4P5 (наш клиент), сбоку «Рейтинг: 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. Информация о продукте
HTTP-метод Endpoint Ограничение POST cackle.me/api/3.0/review/productym.json 2 раза в минуту Параметр Описание id Идентификатор вашего виджета siteApiKey Секретный ключ виджета. accountApiKey Секретный ключ аккаунта products Список товаров в формате JSON У каждого товара должен быть проставлен специальный параметр ymId, принимающий значение modelId из Яндекс.Маркета. Пример товара (параметр products): [{ «prodId»:»12345», «ymId»:»11031822», «chan»:»/product/12345/», «url»: «http://myexamplestore.ru/product/12345/», «name»: «Смартфон Apple iPhone 6 Plus 128Gb», «photo»: «http://mdata.yandex.net/i? path=b0912201833_img_id3857037135783998090.jpeg», «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 письме ведёт именно на страницу купленного товара интернет-магазина (а не на сайт системы сбора отзывов, как во всех других подобных системах) и при переходе форма написания отзыва открывается автоматически с уже авторизованным пользователем.
[embedded content]
Интеграция follow-up рассылки с интернет-магазином Загрузка заказов Для рассылки follow-up писем по покупателям необходимо загрузить заказы из вашего интернет-магазина в Cackle. Это делается с помощью API: HTTP метод Endpoint Ограничение POST cackle.me/api/3.0/review/order.json 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://myexamplestore.ru/product/12345/», «name»: «Смартфон Apple iPhone 6 Plus 128Gb», «photo»: «http://mdata.yandex.net/i? path=b0912201833_img_id3857037135783998090.jpeg», «price»:»65500» }]}] //notify — параметр для безусловной отправки follow-up письма в указанную дату (миллисекунды);//notified — если true, то по данному заказу уже было отправлено follow-up письмо, если false — нет;//user — зарегистрированный на вашем сайте пользователь (единая авторизация, SSO), или вместо него может быть два параметра (email и name) для анонимного юзера.Создание рассылки Когда заказы загружены, необходимо создать рассылку с условиями отправки и шаблоном письма. Это можно сделать в панели администрирования Cackle (вкладка «Отзывы», меню «Рассылка»). Follow-up письмо Письмо состоит из нескольких частей. Редактируемые — отправитель, тема, логотип, тело письма (body), подпись (footer). Нередактируемые — товар или список товаров с названием, фото и ссылкой «Оставить отзыв».Ссылка «Оставить отзыв» ведёт на страницу купленного товара интернет-магазина. Все служебные параметры, для открытия формы написания отзыва и автоматической авторизации пользователя, передаются в ссылке после хеша (#) в закодированном формате (MD5).
Если пользователь перешёл по ссылке «Оставить отзыв» и опубликовал его, то он будет помечен значком «Проверенный покупатель», который сигнализирует о том, что данный клиент действительно купил товар. Тестирование, отладка У созданных рассылок есть кнопка «Тест», по клику на которую происходит мгновенная обработка найденных заказов и отправка 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 минуты.Спасибо за внимание. Всем успехов!