эффективные способы анонимной персонализации с использованием ASP.NET + Cookie

Я пытаюсь добиться анонимной персонализации в среде ASP.net. Я знаю, что ASP.NET 2.0 предоставляет профиль. Однако я хочу, насколько это возможно, избегать трафика в базу данных, поскольку сайт, над которым я работаю, является сайтом с относительно высокой посещаемостью.

Другое очевидное решение - файлы cookie, но, учитывая ограничение cookie, мне было интересно, у кого-нибудь есть эффективный метод для хранения информации в куки. Кто-нибудь знает, как работает Amazon или Yahoo в анонсе. персонализация?

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

 campaign code:page id:result display

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

Заранее спасибо!


person Herman    schedule 24.10.2008    source источник
comment
Какую персонализацию вы хотите сделать? Простое изменение темы или много отображаемых / скрытых панелей в зависимости от предпочтений?   -  person Dillie-O    schedule 24.10.2008
comment
Вы можете получить информацию о персонализации из базы данных во время того же вызова.   -  person DOK    schedule 24.10.2008
comment
Я не думаю, что разговор с базой данных - это вариант, поскольку он предназначен для анонимности. пользователям и мне может потребоваться другая информация. на другой странице нашего сайта.   -  person Herman    schedule 24.10.2008


Ответы (3)


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

Вы можете сохранить идентификатор пользователя в файле cookie.

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

person Luk    schedule 27.10.2008

Если вы хотите сохранить изменения, такие как представление каждой кампании, на самом деле нет никакого способа получить доступ для записи этих изменений. Членство в ASP.NET неплохо для сайта с большим объемом (> 1 млн в день) при правильном использовании. Например, вы должны заключать вызовы поставщика членства в кэшированный объект и часто обновлять (короткий срок действия). Кроме того, не забудьте установить cacheRefreshInterval для RoleProvider. Это заставит asp.net кэшировать роли в cookie, чтобы сократить активность БД.

Другой способ взглянуть на это - последовать совету Ади и выделить членство в отдельную БД. Опять же, еще одна замечательная функция поставщика членства ASP.NET - вы можете установить другую строку подключения SQL и загрузить ее в другую базу данных и / или сервер.

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

person eduncan911    schedule 24.03.2009

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

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

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

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

person Ady    schedule 27.10.2008