Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера coding4.net/Записи в блоге |
Повышение конверсии сайта: зачем это нужно?
2015-01-13 21:37:00 (читать в оригинале)Что такое конверсия и с чем ее едят?
Высокий показатель посещаемости сайта еще не является залогом его доходности, хоть и считается одним из факторов правильного подхода к работе продвиженца. Когда посещаемость стабильно растет, а дохода нет, целесообразно задуматься об увеличении конверсии сайта. Данный показатель заключается в соотношении общего числа посетителей ресурса к тому количеству посетителей, которые осуществили какие-либо функциональные действия, которые могут принести владельцу сайта реальный доход. Так, для интернет-магазинов "целевыми" гостями являются те, кто совершает покупку, для сайтов, зарабатывающих на контекстной рекламе таковыми станут гости, которые перейдут по рекламной ссылке и т.д. Конверсия сайта рассчитывается в процентном соотношении по формуле:
Х/Y*100=К(%), где Х - количество целевых посетителей, Y - общее число посетителей, К — конверсия.
Наиболее показательной является суточная конверсия, однако для отдельной статистики конверсия может быть рассчитана за любой период. Рассмотрим простой пример. В день интернет-магазин посетили 1000 человек, 14 из них сделали заказ. В нашем случае показатель конверсии будет равен 1,4 (14/1000*100).
Методы повышения конверсии
Увеличение конверсии сайта предполагает направление усилий на взаимодействие именно с целевыми посетителями ресурса. То есть, нужно работать в том направлении, чтобы как можно больше гостей захотели купить товар/кликнуть по ссылке/скачать файл и т.д. В СЕО-блогах http://trionika.com.ua/ можно прочесть о нескольких десятках способов повышения конверсии сайта, однако к действительно эффективным пока что можно отнести только три (согласно данным аналитического ресурса Econsultancy):
- А/В-тестирование;
- мониторинг и анализ поведения гостя сайта;
- оптимизация содержимого ресурса.
А/В-тестирование, или сплит-тестирование предполагает сравнительный анализ двух или нескольких видов отображения определенных элементов на веб-странице (каталога товара, логотипа, корзины и т.д.) с целью выявления наиболее эффективного. Данный эксперимент возможно осуществить с помощью специальных программ сплит-тестирования (например, Content Experiments из Google Аnalytics).
Оптимизация содержимого сайта для увеличения конверсии заключается в улучшении контента, рассчитанного на определенную целевую аудиторию. Это может быть закачка свежих видеороликов, размещение новостей по теме и т.д. Например, для интернет-магазина женской обуви полезным будет размещение видеороликов-презентаций последних коллекций для того, чтобы заинтересовать потенциальных покупательниц.
Чехлы для iphone 6 - что нового?
2015-01-02 14:39:00 (читать в оригинале)Уже давно было подмечено: чем "умнее" и дороже телефон, тем чувствительнее он к механическим повреждениям. Владельцам айфонов это хорошо известно. А поклонники техники Apple, что идут в ногу со временем и уже приобрели недавно появившиеся iphone 6 или iphone 6+, наверняка озаботились тем, чтобы их заветная покупка обрела надёжного защитника.
Производители чехлов для шестых iphone и их киевский представитель - интернет-магазин "Кнопка" встретили новинку во всеоружии. Посмотрите все чехлы для iphone 6 тут и оцените многообразие и самобытность продукции китайских производителей.
Чехлы для айфонов можно классифицировать прежде всего по типу материала, из которого они сделаны:
- натуральная кожа;
- искусственная кожа;
- пластик;
- силикон;
- металл.
Разумеется, самыми дорогими и стильными являются благородные чехлы из натуральной кожи. Их цена начинается от полутора тысяч гривен. Однако оптимальную защиту от падений на твёрдую поверхность и случайных ударов обеспечивают не они, а сравнительно недорогие силиконовые чехлы, которые изобретательные китайцы умудряются делать в форме зверей, птиц и сказочных героев.
Другой способ классификации чехлов для iphone 6 - форм-фактор. Это может быть книжка, мешок или кобура, кейс или накладка на заднюю панель или, наконец, бампер (рамка). Здеcь на вкус и цвет товарища нет. Любителям чтения больше по душе книжка-раскладушка, а заядлый автомобилист теряет голову при слове "бампер". К сожалению, ни один мягкий чехол не защищает iphone 6+ от беды, которую в США прозвали bendgate - якобы, большой, но тонкий яблочный смартфон может погнуться в заднем кармане тесных джинсов. Совет один - купили этакую "лопату" - не носите её в заднем кармане. Тем более тесных джинсов.
Кстати, сравнительный анализ цен на чехлы для iphone 6 и iphone 6+ в интернет-магазине "Кнопка" показал их абсолютную идентичность (хотя один аппарат имеет диагональ дисплея 4,7 дюйма, а другого - 5,8).
Отдельный вид чехлов, который можно выделить - чехлы спортивные. Как известно, корпорация Apple разработала немало приложений для активных занятий спортом. Пользователь айфона может контролировать своё давление, дыхание, пульс, скорость бега, преодоленное расстояние в футах, милях, шагах и километрах. Надев на руку специальный спортивный чехол, бегун или лыжник сможет легко контролировать все этапы своей дистанции, будь то стометровка или марафон.
Интернет-магазин - учимся создавать с нуля
2014-12-25 22:05:00 (читать в оригинале)Предприниматели, задумавшие создание интернет-магазина, стоят на распутье. Заняться созданием и продвижением ресурса самостоятельно, довериться профессионалам либо арендовать готовую платформу? Даже если вас устраивает лицензия и аренда платформы, однажды вы столкнётесь с суровой необходимостью реализации собственного проекта. Какие шаги придётся предпринять?
Основные шаги
Создание столь сложного проекта нельзя представить без основательной подготовки. Вам необходимо определиться с поставщиками, системой реализации товара и потенциальными клиентами. Последующие шаги будут такими:
- составление технического задания (функционал, оформление, способы оплаты, ключевые запросы);
- выбор движка (программы, отвечающей за функционирование ресурса);
- поиск компетентного веб-дизайнера (он разработает визуальную концепцию ресурса);
- вёрстка (шаблон дизайна);
- настройка (окончательная подгонка программ и движка);
- SEO-оптимизация (подбор семантического ядра, написание уникальных текстов, поиск картинок).
Сколько это стоит
Решив заказать сайт у специалистов, вы должны запланировать определённый бюджет. Единого тарифа не существует - конечная стоимость зависит от ваших целей и запросов. Приготовьтесь оплачивать услуги следующих специалистов:
- менеджер проекта (он отвечает за общую координацию, составление ТЗ и распределение обязанностей);
- веб-дизайнер;
- команда, создающая движок;
- верстальщик;
- иллюстратор;
- SEO-оптимизаторы;
- программист.
Обращаться к фрилансерам - не лучшее решение. Сэкономить деньги, нервы и время поможет проверенная дизайн-студия, предоставляющая комплексные услуги. Доработки и правки стоит сделать сразу - потом вы будете слишком загружены.
Делаем выводы
Онлайн-магазин «с нуля» - дело серьёзное. Прислушайтесь к следующим рекомендациям:
- Изучите примеры, тщательно подготовьтесь к штурму виртуального пространства.
- Подберите для своего замысла компанию профессионалов (предпочтительно - дизайн-студию).
- Не экономьте - это чревато грядущими потерями.
- Детально пропишите ТЗ для исполнителей.
- Сразу займитесь оптимизацией.
Ресурс «под ключ» при любом раскладе нуждается в участии заказчика. Исполнители должны чётко представлять ваше видение проекта - тогда вы получите качественный продукт.
Статья создана при поддержке студии разработки и продвижения сайта - WebАкула.
Как быстро сделать CRUD ?
2014-12-24 10:52:00 (читать в оригинале)Очень многие программисты во многих проектах пишут реализацию CRUD для разных сущностей.
После того как я написал изрядное количество такого кода и мне надоело решать постоянно похожие задачи.
Решений быстрого создания может быть несколько. Наиболее оптимальным, видимо, является генерация с использованием шаблонов T4.
У разных подходов есть свои плюсы и минусы. В этом посте расскажу об упрощении создания CRUD для сущности с использованием Generic-ов и библиотеки AutoMapper.
Представленное решение, возможно, не завершенное, можно его наверное и улучшить. Но, оно способно существенно ускорить и упростить разработку. Ну или во всяком случае указать направление.
Про библиотеку AutoMapper можно почитать здесь и здесь (производительность и аналоги).
Дальше идет код Generic класса для создания CRUD-ов.
using System; using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.Validation; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; using NEB.DataAccessLayer; using AutoMapper; namespace NEB.BusinessLogicLayer { public abstract class CRUDWithMappingBase<DTO, TBL, TID> where DTO : class where TBL : class { public CRUDWithMappingBase() { Mapper.CreateMap<TBL, DTO>(); Mapper.CreateMap<DTO, TBL>(); } protected TBL _lastCreatedItem = null; // получение значения автоинкрементного поля Id при создании одной записи protected abstract TID GetLastCreatedId(); // запись значения Id в DTO объект protected abstract void InsertIdInDTO(DTO dtoItem, TID idValue); protected List<DTO> ConvertTBL2DTO(List<TBL> listOfProxy) { List<DTO> result = new List<DTO>(); foreach (TBL currProxy in listOfProxy) { DTO resDTO = Mapper.Map<TBL, DTO>(currProxy); result.Add(resDTO); } return result; } public void Create(DTO newDTO) { _lastCreatedItem = Mapper.Map<DTO, TBL>(newDTO); try { NEBEntitiesContext ctx = NEBContextHandler.Get(); ctx.Set<TBL>().Add(_lastCreatedItem); ctx.SaveChanges(); } catch( DbEntityValidationException dbex) { var errs = dbex.EntityValidationErrors; throw dbex; // ловим для поиска ошибки при отладке, но прокидываем, чтобы не скрыть } TID lastCreatedId = GetLastCreatedId(); InsertIdInDTO(newDTO, lastCreatedId); } public void CreateSeveral(List<DTO> newDTOList) { try { foreach (DTO currItem in newDTOList) { Create(currItem); } } catch (DbEntityValidationException dbex) { var errs = dbex.EntityValidationErrors; throw dbex; // ловим для поиска ошибки при отладке, но прокидываем, чтобы не скрыть } } public void CreateSeveralFastWithoutIdsAquering(List<DTO> newDTOList) { try { NEBEntitiesContext ctx = NEBContextHandler.Get(); foreach (DTO currItem in newDTOList) { _lastCreatedItem = Mapper.Map<DTO, TBL>(currItem); ctx.Set<TBL>().Add(_lastCreatedItem); } ctx.SaveChanges(); } catch (DbEntityValidationException dbex) { var errs = dbex.EntityValidationErrors; throw dbex; // ловим для поиска ошибки при отладке, но прокидываем, чтобы не скрыть } } public List<DTO> ReadAll() { List<TBL> listOfProxy = NEBContextHandler.Get().Set<TBL>().ToList(); List<DTO> result = ConvertTBL2DTO(listOfProxy); return result; } protected List<DTO> ReadSeveral(Expression<Func<TBL, bool>> predicate) { List<TBL> listOfProxy = NEBContextHandler.Get(). Set<TBL>().Where(predicate).ToList(); List<DTO> result = ConvertTBL2DTO(listOfProxy); return result; } protected DTO ReadOne( Expression<Func<TBL, bool>> predicate ) { TBL dataProxyObject = NEBContextHandler.Get().Set<TBL>().SingleOrDefault( predicate ); DTO resDTO = Mapper.Map<TBL, DTO>(dataProxyObject); return resDTO; } protected void UpdateOne(DTO upDTO, Expression<Func<TBL, bool>> predicate) { NEBEntitiesContext ctx = NEBContextHandler.Get(); TBL dataProxyObject = ctx.Set<TBL>().SingleOrDefault( predicate ); Mapper.Map<DTO, TBL>(upDTO, dataProxyObject); ctx.SaveChanges(); } protected void DeleteOne(Expression<Func<TBL, bool>> predicate) { NEBEntitiesContext ctx = NEBContextHandler.Get(); TBL dataProxyObject = ctx.Set<TBL>().SingleOrDefault(predicate); ctx.Set<TBL>().Remove(dataProxyObject); ctx.SaveChanges(); } protected void DeleteSeveral(Expression<Func<TBL, bool>> predicate) { NEBEntitiesContext ctx = NEBContextHandler.Get(); List<TBL> listOfProxy = ctx.Set<TBL>().Where(predicate).ToList(); foreach (TBL currProxy in listOfProxy) { ctx.Set<TBL>().Remove(currProxy); } ctx.SaveChanges(); } } }
Здесь DTO - DataTransferObject (он же POC) для передачи данных между BL и верхними слоями, TBL - прокси класс EF, TID - тип колонки (поля) идентификатора записи (строки в БД). А теперь приведен код класса CRUD созданного на основе предыдущего Generic-а.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using SomeProject.BusinessLogicLayer; using SomeProject.DataAccessLayer; using DTO = SomeProject.Libraries.BusinessLogicLayer.DataTransferObjects; namespace SomeProject.Libraries.BusinessLogicLayer { public class LibraryCRUD : CRUDWithMappingBase<DTO.Library, tbl_libraries, Int32> { protected override Int32 GetLastCreatedId() { return _lastCreatedItem.Id; } protected override void InsertIdInDTO(DTO.Library dtoItem, Int32 idValue) { dtoItem.Id = idValue; } public LibraryCRUD() : base() { } public DTO.Library ReadOne(Int32 Id) { return this.ReadOne(x => x.Id == Id); } public List<DTO.Library> ReadSeveral(List<Int32> listOfIds) { return this.ReadSeveral(x => listOfIds.Contains(x.Id)); } public void UpdateOne(DTO.Library lib) { this.UpdateOne(lib, x => x.Id == lib.Id); } public void DeleteOne(DTO.Library lib) { this.DeleteOne(lib.Id); } public void DeleteOne(Int32 Id) { this.DeleteOne(x => x.Id == Id); } public void DeleteSeveral(List<Int32> listOfIds) { this.DeleteSeveral(x => listOfIds.Contains(x.Id)); } public DTO.Library ReadOSomeProjectySourceALISIdAndIdFromALIS(Int32 sourceALISId, String idFromALIS) { return this.ReadOne(x => x.SourceALIS == sourceALISId && x.IdFromALIS == idFromALIS); } public List<DTO.Library> ReadSeveralBySourceALISIdAndIdFromALISList( Int32 sourceALISId, List<String> listOfIds) { return this.ReadSeveral( x => x.SourceALIS == sourceALISId && listOfIds.Contains(x.IdFromALIS)); } } }
Что такое аутстаффинг ?
2014-12-22 21:20:00 (читать в оригинале)Программа 1С может считаться одной из самых популярных учетных систем в России, а также других странах СНГ. Именно поэтому растет спрос на специалистов в данной области. Сейчас нередко спорят о том, нужен ли разработчик 1с предприятие в штат или воспользоваться услугами сторонних организаций. Многие предпочитают нанимать штатного работника, однако немало и тех, кто высказывается против этого.
В этом случае существует достойная альтернатива - услуги по сопровождению 1С. Причем, осуществляются они тоже по-разному. Во-первых, компании профессионалов предлагают свое почасовое обслуживание или абонентское. Во-вторых, специалиста можно внедрить на проектной основе. Однако наиболее удобным в этом отношении можно назвать «Аутстаффинг специалистов». Согласно этому определению, работник предоставляется компании на время. Это очень удобно, ведь тогда искать опытного штатного работника не нужно.
Иногда можно заметить, что такие понятия, как «аутсорсинг » и «аутстаффинг» путают. Действительно, эти определения близки, однако есть и разница. Аутсорсинг предполагает, что некоторые функции одной компании ложатся на плечи другой. В этом случае под этими функциями понимаются обязанности специалиста и программиста 1С. У аутстаффинга несколько иное определение — это вывод своего работника -подрядчика за штат.
Главное преимущество использования этого метода - отсутствие необходимости искать работника. Компания аутстаффинга предоставит квалифицированного опытного сотрудника в минимально короткий срок. Именно этот человек будет осуществлять услуги программиста 1С - поддержку и реализацию различных проектов с программой 1С. Решение привлечь компанию аутстаффинга поможет руководителю предприятия-заказчика значительно сэкономить, ведь нанятые специалисты будут получать заработную плату не по количеству отработанных часов, а по объему выполненной работы.
Иными словами, получается, что специалиста берут "в аренду". А это удобно и тем, что проведение кадровых процедур и уплата налогов производится компанией-исполнителем.
В чем заключаются обязанности нанятого специалиста? В зависимости от нужд компании, он может осуществлять поддержку 1С с технической стороны или же участвовать в проектах долгосрочных и краткосрочных. Не стоит волноваться и по поводу отсутствия персонала по причине болезни или отпуска - компания исполнитель оперативно предоставит ему замену.
+1120 |
1146 |
не задают вопросов о причинах желания |
+1071 |
1156 |
Azizti |
+996 |
1206 |
@дневники: ~ Mikeko ~ - Пусть все думают, что было так! :) |
+915 |
936 |
bigmir)net :: персональный дневник :: ISE-LADI |
+909 |
932 |
Robin_Bad |
-1 |
99 |
ClericDade |
-2 |
103 |
radulova |
-5 |
13 |
_123_ |
-6 |
30 |
_Kicker_ |
-6 |
22 |
Sebastian_Valmont |
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.