Статьи

Персонализация сайта: не должны ли сайты быть умнее?

Галерея персонализированных тарелок

Фото: Малингеринг

Как мы все знаем, веб-индустрия быстро развивается.

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

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

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

  • Потребители получат более актуальный веб-опыт.
  • Предприятия увидят более высокую конверсию от посетителей к фактическим клиентам.

Давайте рассмотрим три различных сценария персонализации и способы реализации каждого из них:

Сценарий A — персонализация на основе местоположения

Я владелец ресторана, у которого есть два местоположения; один в Сан-Франциско и один в Лос-Анджелесе. Несмотря на то, что у меня есть один веб-сайт для обоих ресторанов, в каждом месте проводятся разные рекламные акции.

Я хочу выделить акцию на главной странице, но также хочу, чтобы пользователи из Лос-Анджелеса увидели акцию в Лос-Анджелесе, а пользователи из Сан-Франциско увидели специальные предложения Сан-Франциско.

Вот как я хочу, чтобы мой сайт выглядел:

Гости из Лос-Анджелеса:

Вид № 1: Голливуд

Посетители из Сан-Франциско:

Вид № 2: Сан-Франциско

Как это реализовать:

1. Реализуйте различные разделы промо-акций в своем HTML, присвойте им уникальные идентификаторы и скройте их с помощью CSS.

<section id="promotion-la" style="display:none"> <!-- your LA promotion html goes here --> </section> <section id="promotion-sf" style="display:none"> <!-- your SF promotion html goes here --> </section> 

2. Добавьте код JavaScript, который будет определять местоположение посетителя на основе его IP-адреса и отображать соответствующий раздел. В этом примере мы будем использовать MaxMind JavaScript API ( http://dev.maxmind.com/geoip/geoip2/javascript/ ) для получения данных о местоположении. Вы также можете использовать MaxMind из своего серверного кода.

В этом примере я предполагаю, что вы используете jQuery.

 <script src="//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js" type="text/javascript"></script> 
 <script> $(document).ready(function(){ var onSuccess = function(location){ if(location.city && location.city.names && location.city.names.en) { if(location.city.names.en == "San Francisco") { $("#promotion-sf").show(); } else if(location.city.names.en == "Los Angeles") { $("#promotion-la").show(); } } ); }; var onError = function(error){ alert( "Error:\n\n" + JSON.stringify(error, undefined, 4) ); }; // get the user location geoip2.city(onSuccess, onError); }); </script> 

Вы также можете использовать мобильный API определения местоположения JavaScript ( http://dev.w3.org/geo/api/spec-source.html ) для создания сценариев на основе точного местоположения пользователя (например, адреса улицы), но при таком подходе имеет два основных недостатка:

  1. Он будет работать только на устройствах с поддержкой определения местоположения.
  2. Он покажет пользователю предупреждение « Разрешите ли вы этому сайту использовать ваше текущее местоположение », что может привести к повышению показателя отказов.

Сценарий B — персонализация на основе времени

Допустим, мы хотим показать ежедневные события на странице меню, основываясь на текущем дне.

Вот как я хочу, чтобы это выглядело так:

Страница меню в пятницу:

Специальное пятничное блюдо: стейк

Страница меню в субботу:

Специальное субботнее: креветки

Специальное субботнее: креветки

Как это реализовать:

  1. Реализуйте различные ежедневные специальные разделы в своем HTML, присвойте им уникальные идентификаторы и скройте их с помощью CSS.
 <section class=”Friday” style="display:none"> <!-- your Friday special html goes here --> </section> <section class=”Saturday” style="display:none"> <!-- your Saturday special html goes here --> <section> 

2. Добавьте код JavaScript, который проверит текущий день и покажет соответствующий специальный раздел.

 <script> $(document).ready(function(){ var d = new Date(); var weekday = new Array(7); weekday[0]= "Sunday"; weekday[1] = "Monday"; weekday[2] = "Tuesday"; weekday[3] = "Wednesday"; weekday[4] = "Thursday"; weekday[5] = "Friday"; weekday[6] = "Saturday"; var today = weekday[d.getDay()]; $('.'+today).show()}); </script> 

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

Сценарий C –- Посещаемая персонализация

Давайте добавим еще один крутой пример в микс.

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

Вот как я хочу, чтобы мой сайт искал посетителей, которые посетили три или более раз:

Список рассылки

Как это реализовать:

  1. Реализуйте раздел «Присоединяйтесь к нашему списку рассылки» в своем HTML, присвойте ему уникальный идентификатор и скройте его с помощью CSS.
    <section id=”join”>  your mailing list form goes here  </section>
    <section id=”join”>  your mailing list form goes here  </section> 
    1. Добавьте код JavaScript, который проверит количество посещений пользователя и покажет раздел, если он равен трем или более. Мы будем использовать куки для хранения количества посещений пользователя.
 $(document).ready(function(){ function getTotalVisits() { var now = new Date(), // we will set a cookie to be valid for 1 year expireDays = 365, // we will define a visit length as 30 minutes visitLength = 30 * 60000; // get the last pageview time. //We are using jQuery cookie plugin to get/set the cookies lastView = $.getCookie("last_view"); if (lastView == null) lastView = now.getTime(); // set the new last page view $.setCookie("last_view", now.getTime(), expireDays); // get the total visits from the cookie var numVisits = $.getCookie("total_visits"); if(numVisits == null) { numVisits = 0; } // increment the total visits by 1 numVisits = (numVisits* 1) + 1 // set a new total visit if needed if (numVisits == 1 || now.getTime() - lastView &gt; visitLength) { // this is a new visit $.setCookie("total_visits", numVisits, expireDays); } return numVisits; } // show the join us section if total number of visits is bigger than 3 if(getTotalVisits() &gt;= 3) { $("#join").show(); } }); 

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

Представьте, что вы делаете что-то для пользователей из Нью-Йорка в определенное время или для новых посетителей, которые используют мобильное устройство.

Очевидно, что вы хотите убедиться, что реализуемая персонализация отвечает вашим целям, поэтому рекомендуется добавить отслеживание, когда действие завершается в этих сценариях. Вы можете использовать Google Analytics Events, Mixpanel или любое другое аналитическое программное обеспечение.

На мой взгляд, самая большая проблема с персонализацией сайта — это обслуживание. Как добавить эти варианты использования, не делая код нечитаемым. Как запомнить, когда продвижение заканчивается, и удалить код. Как понять, как будет выглядеть сайт для каждого пользователя, если настроено несколько сценариев. Это вещи, которые вы должны рассмотреть, прежде чем добавлять множество этих хуков на ваш сайт.