- PVSM.RU - https://www.pvsm.ru -
Всем привет! Сегодня мы расскажем о том, что именно должна делать хорошая система сбора отзывов для гарантированного поднятия конверсии сайта на примере нашего продукта – системы сборы отзывов Cackle Reviews [1]. Первый релиз состоялся в ноябре 2013. За полтора года существования у нас появилось порядка 200 клиентов (из которых 150 – интернет-магазины) и чёткое представление о том, какие возможности системы отзывов честно влияют на рост конверсии:
1. Автоматическая индексация отзывов с микроразметкой рейтинга schema.org/review
;
2. Импорт отзывов из Яндекс.Маркета;
3. Рассылка follow-up писем после покупки с приглашением оставить отзыв;
4. Трансляция отзывов в социальные сети;
5. СПАМ-тест (mail-tester.com [2]) с результатом не ниже 9/10 баллов.
Как это всё работает в Cackle Reviews – под катом.
Микроразметка рейтинга – это определённый формат данных для того, чтобы Google понимал и отображал в результатах поиска ссылки на ваш сайт вместе с красивыми оранжевыми звёздочками, рейтингом и количеством отзывов.
В Cackle Reviews это работает автоматически. Cackle Reviews, при установке на любую страницу сайта, скажет Google, что данную страницу надо индексировать с микроразметкой [3]. А самое главное «It's Just JavaScript™», то есть не нужны никакие дополнительные настройки в виде синхронизации отзывов в локальную БД или плагины для CMS. Работает это благодаря тому, что Google индексирует JavaScript.
Чтобы убедиться, что Google будет индексировать ваш сайт с микроразметкой, есть специальный валидатор Google Testing Tool [4]. Так как 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.
Google индексирует JavaScript с микроразметкой schema.org/review. Поэтому в виджете, при отрисовке HTML, достаточно просто поддерживать данный формат [3].
<div itemscope itemtype="http://schema.org/Product">
<meta itemprop="category" content="Mobile">
<meta itemprop="brand" content="Apple">
<meta itemprop="name" content="iPhone 6 Plus 128GB">
<meta itemprop="image" content="http://mdata.yandex.net/i?path=b0912201810_img_id7453707806759058271.jpeg">
</div>
<span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
<span itemprop="ratingValue">4.5</span> <!-- рейтинг -->
<span itemprop="reviewCount">7</span> <!-- количество отзывов -->
</span>
...
<li itemprop="review" itemscope="" itemtype="http://schema.org/Review">
<span itemprop="reviewRating" itemscope="" itemtype="http://schema.org/Rating">
<meta itemprop="ratingValue" content="5"> <!-- рейтинг -->
</span>
...
<a href="..." itemprop="author">Чак Норрис</a> <!-- автор -->
...
<meta itemprop="datePublished" content="2015-04-10T12:06:17"> <!-- время публикации отзыва -->
...
</li>
...
PS: Значения даны для примера.
Отзывы – проверенное и недорогое решение для увеличения конверсии сайта. Склонить пользователя написать отзыв трудно, поэтому лучше взять готовые, например с Яндекс.Маркета. Выгоды для вас:
Сначала надо получить ключ Яндекс.Маркета [5] для доступа к API загрузки отзывов, указав его в форме Cackle Reviews и IP-адрес нашего сервера (cackle.me). Сохранить ключ в панели администрирования Cackle (вкладка «Отзывы», меню «Настройка»).
Для сбора отзывов загрузите товары из вашего интернет-магазина в Cackle, используя API:
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 – канал для связки отзывов со страницей сайта (подробнее [6])
url – страницы, где будут отзывы
Демонстрация на сайтах клиентов: delonghi.club [7], shveiburg.ru [8], mrklimat.ru [9].
Функционал написан на Java, Spring и Hibernate. Оперирует с 4 основными таблицами БД, более подробно – в спойлере.
review_ym_cursor – информация о модели (modelId), количество загруженных и всех отзывов с Маркета ("курсор")
review_ym – отзывы в формате Яндекс.Маркета
review_product – загруженные товары + информация о количестве конвертированных отзывов из review_ym в review
review – отзывы в формате Cackle
Работает последовательно:
Клиент вызывает API добавления товара с заполненным ymId. Товар добавляется в таблицу review_product, в review_ym_cursor создается новая запись с идентификатором данного сайта, товара и модели в Яндекс.Маркете.
Запускается функция, которая вызывает API Маркета [10] и получает первые 10 отзывов, сохраняя их в промежуточную таблицу review_ym в формате Яндекс.Маркета. В таблицу review_ym_cursor сохраняется общее количество скачанных отзывов (поле recd) по данной модели и сайту + сколько отзывов всего (поле total).
Запускается функция, которая берёт Маркет-отзывы из таблицы review_ym и сохраняет их в отзывы в формате Cackle Reviews в таблицу review. В таблицу review_product записывается общее количество конвертированных отзывов (поле conv), чтобы в следующий раз начать с нужного места.
В ночное время происходит автоматический вызов двух процессов:
Первая выполняет пункт 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). Меньше каплинга – меньше проблем.
Собирать отзывы нужно не только с Яндекс.Маркета, но и от реальных покупателей. Допустим, пользователь приобрёл какой-то товар в интернет-магазине. Через несколько дней на свой email он получает письмо с просьбой оставить отзыв о ранее купленном товаре. Такие письма называются follow-up и Cackle Reviews умеет отправлять их автоматически.
Уникальность Cackle Reviews в том, что ссылка «Оставить отзыв» в 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 [11]), или вместо него может быть два параметра (email и name) для анонимного юзера.
Когда заказы загружены, необходимо создать рассылку с условиями отправки и шаблоном письма. Это можно сделать в панели администрирования Cackle (вкладка «Отзывы», меню «Рассылка»).
Письмо состоит из нескольких частей. Редактируемые – отправитель, тема, логотип, тело письма (body), подпись (footer). Нередактируемые – товар или список товаров с названием, фото и ссылкой «Оставить отзыв».
Ссылка «Оставить отзыв» ведёт на страницу купленного товара интернет-магазина. Все служебные параметры, для открытия формы написания отзыва и автоматической авторизации пользователя, передаются в ссылке после хеша (#) в закодированном формате (MD5).
Если пользователь перешёл по ссылке «Оставить отзыв» и опубликовал его, то он будет помечен значком «Проверенный покупатель», который сигнализирует о том, что данный клиент действительно купил товар.
У созданных рассылок есть кнопка «Тест», по клику на которую происходит мгновенная обработка найденных заказов и отправка follow-up писем. Например, можно загрузить несколько тестовых заказов с email-ми @mailforspam.com
или @mailinator.com
, а дальше тестировать отправку писем.
Автоматическое исполнение активированных рассылок происходит в ночное время с 01 до 06 часов по Москве.
Рассылка follow-up писем работает автоматически в плагинах 1С-Битрикс [12] и OpenCart [13]. В ближайшее время планируем подключить данный функционал для Joomla (VirtueMart, K2, Zoo) [14], PrestaShop [15] и InSales.
Cackle Reviews поддерживает три типа авторизации: анонимная, социальная и единая с сайтом. Если пользователь выбирает социальную авторизацию и входит через ВКонтакте/Мой Мир/Facebook/Twitter, то его отзыв автоматически попадает на стену социальной сети со ссылкой на сайт. Выгоды для интернет-магазина:
Функционал доступен для тестирования на странице демонстрации решения [16].
У каждой соц.сети свой API кросспостинга сообщения на стену. Это API мы включаем в реализацию библиотек OAuth-авторизаций. В Cackle для таких библиотек используется Spring Social [17], только со своей имплементацией для каждой социальной сети. Это очень удобно, так как многое Spring Social делает за вас, например, поддержка стандартов OAuth 1.0 и 2.0, сохранение и обновление access, refresh-токенов и expired.
Возможно, кто-то не знает, но есть такой сервис проверки писем на СПАМ, как mail-tester.com [18]. Результат его проверки – это количество балов от 1 до 10. Для системы сбора отзывов с follow-up рассылкой низкий бал означает, что покупатели просто не будут получать письма с приглашением оставить отзыв.
В следующем топике расскажем, про наш опыт настройки SMTP-сервера и как мы добились вот такого результата для Cackle Reviews:
Автор: javist
Источник [19]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/89328
Ссылки в тексте:
[1] Cackle Reviews: http://cackle.ru/reviews
[2] mail-tester.com: https://mail-tester.com
[3] микроразметкой: https://developers.google.com/structured-data/rich-snippets/reviews
[4] Google Testing Tool: https://developers.google.com/structured-data/testing-tool
[5] ключ Яндекс.Маркета: http://feedback2.yandex.ru/api-market-content/key/?from=marketcontentapi
[6] подробнее: http://cackle.ru/help/widget-api#channel
[7] delonghi.club: http://delonghi.club/products/avtomaticheskaya-kofemashina-de-longhi-magnifica-s-ecam-22-110-b-black#tabid=tab-2
[8] shveiburg.ru: http://shveiburg.ru/catalog/shveynye_mashiny/juki/juki_hzl_27z/
[9] mrklimat.ru: http://www.mrklimat.ru/vozduchoochistiteli/ochistiteli-vozducha/vozduchoochistitel-sharp-kc-850e.html
[10] API Маркета: https://tech.yandex.ru/market/content/doc/dg/reference/model-id-opinion-docpage/
[11] единая авторизация, SSO: http://cackle.ru/help/integrating-sso
[12] 1С-Битрикс: http://marketplace.1c-bitrix.ru/solutions/cackle.reviews/
[13] OpenCart: https://bitbucket.org/cackle-plugin/review-opencart/get/tip.zip
[14] Joomla (VirtueMart, K2, Zoo): http://extensions.joomla.org/extensions/extension/clients-a-communities/ratings-a-reviews/cackle-reviews
[15] PrestaShop: https://bitbucket.org/cackle-plugin/review-prestashop/get/tip.zip
[16] странице демонстрации решения: http://cackle.ru/demo/review
[17] Spring Social: http://projects.spring.io/spring-social/
[18] mail-tester.com: http://www.mail-tester.com
[19] Источник: http://habrahabr.ru/post/255477/
Нажмите здесь для печати.