Эта статья займёт всего 3 минуты вашего времени, но сэкономит до 5 часов в неделю!
В этой статье поделюсь моей системой быстрого тестирования рекламных кампаний без лишних трат с помощью пакетных стратегий на примере моего проекта.
Задача: В онлайн-школе макияжа мне необходимо привлекать целевых людей на бесплатный марафон, с целью последующей покупки курса.
Исходная ситуация: Иногда мы сталкиваемся с проектами, где множество сегментов аудитории и куча идей для рекламы. Хочется всё запустить и протестить, есть такое? А если запускаем всё, какая-то кампания не залетит и приходится готовить что-то новое...
Например, вот некоторые проблемы ЦА в этом проекте:
Недостаток навыков в нанесении макияжа.
Отсутствие времени, но желание всегда выглядеть ухоженно и естественно.
Проблемы с контурингом (коррекцией лица, носа, скул).
Проблемы с рисованием одинаковых стрелок.
Нависшие веки и проблемы по нанесению макияжа на глаза.
Желание скрыть возрастные изменения.
Проблемы с акне и чёрными точками, и желание их скрыть.
Непонимание, какую косметику лучше выбрать
Проблемы ухода за кожей для идеального макияжа.
Это только некоторые из проблем, с которыми сталкивается целевая аудитория. Мы понимаем, что для каждой проблемы нужно своё решение, чтобы зацепить внимание на первом этапе, используя объявления. Однако проблема в том, что бюджет ограничен и нужно выбрать наиболее эффектные сегменты для запуска.
Может возникнуть вопрос: а почему бы не создать одну кампанию и не загрузить в неё множество групп? Я не сторонник такого подхода потому что, если у проекта есть потенциал для масштабирования, трудности возникнут в тот момент, когда начнём увеличивать бюджет на эту кампанию и цена регистрации улетит в космос, поэтому мне важно иметь кампании в запасе. (Люблю раскидывать рекламный бюджет под разные кампании)
Решение: В прошлой статье пакетные стратегии я использовала для масштабирования, а теперь их использую и для тестирования. Как оказалось, это самый эффективный вариант при ограниченном бюджете. Пакетные стратегии позволяют мне экспериментировать с разными подходами и находить ту самую "золотую жилу", не расходуя средства на каждую идею по отдельности.
Рассмотрим по шагам:
Выбрала самые актуальные запросы с анализа ЦА и собрала 7 кампаний с релевантными ключевые фразами и офферами.
В прошлой статье я писала, чтобы 7 кампаний точно обучились, нам нужно поставить недельный бюджет минимум 70.000 рублей. Тут моя задача сэкономить и быстрее протестировать, а уже потом масштабировать. Поэтому я поставила недельный бюджет 42.000 рублей и минимальный недельный бюджет выставила 35000, а среднюю цену конверсии - 270 рублей (средняя по кабинету).
Как видите, стратегия полностью обучилась. Кампаниям хватило и этого бюджета и стоимость регистрации в итоге вышла даже дешевле средней по кабинету.
Если бы мы запустили 7 разных кампаний, я бы потратила 60-70 тысяч рублей и стоимость регистрации была бы дороже на первой неделе.
Во-первых мы сэкономили, во-вторых мы обучили стратегию.
После обучения, если я вижу, что некоторые кампании не в KPI по цене регистрации, я сразу выключаю, а те, что в KPI, оставляю на 2 недели, пока не пойдут продажи/заказы. Вот какая ситуация в кабинете за 2 недели:
Мы дали возможность протестировать кампании Яндексу и выбрать самые лучшие. А кампании, которые успели открутить совсем мало, пойдут в другую пакетную стратегию позже, чтобы Яндекс и среди них выявил лидеров. Если же их оставить тут работать, у них всё равно открута не будет.
Из 7 кампаний остались только 3, потому что именно они приносят заявки и окупают трафик.
Вы, наверное, заметили, что я очень полюбила пакетные стратегии. Они на самом деле спасают, когда не знаешь какие кампании из 10 точно залетят. За пол часа собираем кучу кампаний, запускаем и уходим заниматься своими делами!
С момента выхода первой части статьи из рубрики «сам себе экосистема» прошёл уже практически год! За это время, мы успели с вами реализовать клиенты VK и YouTube, которые работают на Android 2.2+, а также на Windows Phone 8, написать небольшую 2D-игру с нуля весом менее 1Мб, которая работает практически везде и довести существующее приложение до ума, дабы оно работало даже на смартфоне с дисплеем 240x320! Но на дворе 2024 год, люди стремительно переходят из соц. сетей в продвинутые мессенджеры и уже сложно себе представить современного человека, который не пользовался бы «телегой» или даже «вайбером» в качестве основного средства общения. Поэтому я решил реализовать клиент Telegram на смартфоне 14-летней давности на базе официальной реализации MTProto от команды Telegram — TDLib. Сегодня мы с вами: узнаем новые причины мотивации вернуть в строй смартфоны прошлых лет, напишем на C# реле-сервер, который обрабатывает пакеты MTProto и кодирует их в простой текстовый формат датасетов, который можно моментально обработать даже при нестабильном GPRS-соединении на 21-летнем Siemens C60, а также узнаем о разработке миниатюрных Android-приложений на базе «голого» API-системы, которые не тянут за собой никаких зависимостей, в том числе и AppCompat/androidx. Интересно? Тогда жду вас под катом!
На дворе уже стукнул 2024 год, современные смартфоны предлагают какие-то немыслимые мощности относительно тех, которые когда-то были в первых Android-девайсах. Сейчас за сотню баксов можно купить смартфон с хорошей 1080p IPS-матрицей, 4Гб ОЗУ и 8-ядерным шустрым чипсетом, который вполне способен плавно тянуть даже стремительно «жиреющие» на ресурсы клиенты социальных сетей, банков и прочие необходимые в повседневной жизни приложения. И казалось бы: всё хорошо, покупай себе редмик раз в год или айфон раз в несколько лет и наслаждайся всеми прелестями работы современных приложений…
Для многих людей смартфон — это лишь инструмент, повседневный компаньон, который помогает облегчить выполнение каких-то задач. Им совершенно не важно, как он выглядит, как ощущается в руках, какой у него дисплей и железо «под капотом», лишь бы работал да и нормально. Но есть и другая категория людей, для которых телефоны, смартфоны и любые портативные гаджеты — это не просто утилитарный девайс, а настоящее инженерное произведение искусства, с которого буквально сдувают пылинки и стараются до последнего пользоваться ими как повседневными устройствами. Хотите пример? Смотрите ниже:
Фактически, среди современных смартфонов по сути и нет представителей такого нынче вымершего форм-фактора, как сайдслайдеры с физической QWERTY-клавиатурой, боковые раскладушки с двумя дисплеями и даже из QWERTY-моноблоков есть только смартфоны от Unihertz. Даже среди моноблоков с тачскринами нет никакого разнообразия, лишь без-рамочные одинаковые девайсы за исключением устройств от Sony.
Galaxy S Plus
Раньше меня часто спрашивали, мол, да как ты вообще можешь пользоваться смартфоном 10-летней давности, на котором давно нет официальных клиентов популярных сервисов и только недавно, с развитием блога, мне перестали задавать этот вопрос, поняв, что это бесполезно — ведь это дело принципа и порыва энтузиазма! Смотрите сами: у нас уже есть простенькие, но вполне рабочие клиенты ВК, YouTube, сейчас я допиливаю клиент «Сбера» на СМСках, реализую карты OpenStreetMap (правда пока без адекватной навигации), а в будущем планирую написать приложение для мониторинга погоды и трекинга посылок. Кроме того, в рамках этой статьи мы реализуем с вами клиент Telegram: так чем же это не функционал современного смартфона?
Но хорошо, с функционалом разобрались, однако для многих читателей слова «старый смартфон» это прямые синонимы «тормозной смартфон», мол «фуу, да как можно пользоваться этим тормозным кирпичом, он же лагает в последней версии моей ВКшечки!». Но давайте поставим вопрос ребром: может, это не столько девайсы немощные, сколько сами приложения, с кодовой базой, которая тянется более 10 лет, откровенно жиреют, обрастают костылями и хаками после далеко не одного поколения программистов, которые над ними работали? :) Один, вот, предпочитал пользоваться чистым AppCompat'ом, другой решил притащить зависимость, которая, например, оптимизирует виртуализацию ListView, третий решил заменить всю сериализацию Json со встроенных классов в Android на что-то стороннее и реализовал это костылями и вот так, по чуть-чуть изначально оптимальный и шустрый код превращается в неповоротливое УГ, которое не рефакторили кучу лет.
На видео Galaxy Pocket Neo — очень дешёвый Android-смартфон из 2011 года с 1-ядерным чипсетом на ~800МГц и 256Мб ОЗУ. При этом всём, Android софтварно рисует все анимации на процессоре, без участия GPU.
А значит у стареньких девайсов всё равно есть шанс быть полезными и стать полноценными повседневными смартфонами даже спустя более чем десять лет после выхода! И в сегодняшнем материале, я вам расскажу об особенностях разработки самопального клиента Telegram с собственным прокси-сервером, которое концептуально допускает реализацию даже на кнопочном Siemens C60 2003 года. Как? Читаем ниже!
❯ Принцип работы
В отличии от ВК (который разрабатывали те же самые люди, что и Telegram), API которого построено на базе REST-запросов и концепции Longpolling'а для моментального получения событий с сервера, Telegram построен на базе собственного протокола под названием MTProto, который может работать поверх любого «транспорта» (протокола нижнего уровня) — TCP, HTTP, WebSocket и т.п. Сам по себе MTProto в современном виде, разработка прожженного математика Николая Дурова и его команды — протокол относительно сложный для реализации «на коленке» и в первую очередь требует довольно серьезного понимания принципов работы современной криптографии, да и документирован он всё ещё не особо хорошо. Кроме того, у MTProto весьма интересный бинарный формат пакетов, эдакий велосипед Protobuf. В долгосрочной перспективе поддерживать свой велосипед MTProto может быть весьма проблематично, учитывая не самую лучшую документацию.
Но городить велосипед и не нужно, поскольку у команды Telegram есть официальная реализация MTProto — библиотека TDLib, которая инкапсулирует в себе не только детали реализации протокола, но и сетевой ввод/вывод и выбор транспорта, хранение базы данных сообщений и авторизации, автоматическую загрузку фото и видео, конвертация объектов из бинарного формата MTProto в JSON и полная многопоточность и частичная потоко-безопасность. С одной стороны это плюс — уже готовое решение для реализации клиента на новой поддерживаемой платформе, где есть OpenSSL (можно статически слинковать), zlib (линкуется статически), сокеты и файловый ввод/вывод, а также довольно неплохой механизм JSON-based API, которое позволяет использовать библиотеку в любом языке, который поддерживает вызов C-функций, а с другой и минус — библиотека довольно много весит, в одиночку прибавляя ~20Мб веса приложения для каждой архитектуры, у неё течёт память и у нее странный механизм получения данных с сервера (например, нельзя ответить на сообщение, зная его ID, если сообщение предварительно не загружено, при том что на сервере весь ответ — это просто ID, на какое сообщение прилетел ответ).
Понятное дело, что на стареньком смартфоне использовать оригинальный TDLib будет проблематичным — даже если собрать либы современным NDK и запилить JNI-интерфейс, библиотека «жрёт» много ОЗУ (20-100Мб «вхолостую», в зависимости от числа диалогов и частоты прилетающих событий, плюс со временем течет до 1-2Гб, если не использовать базу данных сообщений. Скорее всего, это косяк в реализации пулов, объекты из которых выгружаются при сбросе в базу, но не выгружаются при высоком потреблении ОЗУ) и уж тем-более TDLib не запустить на любимых кнопочных Java-сонериках! Поэтому я решил написать прокси-сервер, который отправляет команды, слушает ивенты TDLib и предоставляет REST-like API для клиентских программ, которые просто вызывают какой-либо метод, а в ответ получают простой и короткий строковой датасет только с необходимыми полями, весом до 10Кб (что позволяет его быстро загрузить даже с GPRS-интернетом), который можно быстро распарсить даже на преусловутом Siemens C60!
К сожалению, поскольку TDLib прожорлив, я не смогу захостить на своём сервере инстансы для читателей, которые хотят поюзать приложение, поэтому вам придется ставить и запускать сервер на своём VDS/компьютере с белым IP/роутере, если под него есть .NET Core :)
Клиентом же будет выступать Android-смартфон, где приложение будет фронтэндом данных с сервера. Ничего сложного на первое время нет: первое окно — это список диалогов, второе окно — список сообщений в диалоге + поле для написания сообщения, третье окно — информация о пользователе. Всё это я реализовал за три дня не-напряжной работы «на коленке».
Давайте же перейдем к реализации сервера!
❯ Прокси-сервер
Сервер я решил писать на C#, поскольку у .NET Core сейчас всё очень хорошо с кроссплатформенностью и производительностью. Его можно даже на Raspberry Pi запустить :)
Итак, какая-же архитектура такого сервера может быть? Программа инициализирует TDLib, начинает слушать её события в отдельном потоке, пока в основном потоке крутится HTTP-сервер, который обрабатывает каждый отдельный запрос с клиентского приложения. Почему синхронно? Потому что TDLib фактически не возвращает никаких идентификаторов для возвращаемых датасетов, дабы их можно было отличить друг от друга. Приведу пример: у нас есть метод getChatHistory, который возвращает n-сообщений. При этом TDLib сам определяет, сколько хочет сообщений вернуть (и в первый вызов возвращает одно сообщение вне зависимости от настрое и отправляем пакет message n-раз. При этом в пакете message нет какого-либо ID, который позволял бы ассоциировать текущий объект с какой-либо операцией. Увы!
Начинаем с коммуникации с TDLib. Для работы с библиотекой, мы будем использовать json-интерфейс. Для .NET есть биндинги через C++/CLI, но в таком случае, сервер не будет работать на Linux. Для работы с библиотекой хватит лишь три функции: CreateClientID, которая аллокейтит новый инстанс клиента, Send, которая асинхронно отправляет JSON-объект с командой, которую затем обработает TDLib и Receive, которая ждёт N-секунд и возвращает в виде ASCII-строки (!) JSON-объект с описанием события или данными после одного из запросов. За это у нас отвечает класс TDLibInterface, который объявляет PInvoke-методы для вызова нативных методов из библиотеки. .NET Core сам подгрузит библиотеку tdjson (причём на Linux он добавит ей префикс а-ля libtdjson.so, а на Windows загрузит tdjson.dll) и сам разберется с маршаллингом аргументов функций: например, string автоматически преобразует в const char*. Тем не менее, с const char* возвратами нужно быть аккуратнее — у меня был SIGSEGV, пока я ручками не конвертировал их в обычную строку.
З.Ы: На Пикабу нет отдельного тега для кода, а вставить листинги картинками я не могу из-за ограничения на 25 медиаэлементов. Так что листинги будут совсем без табов, но алгоритм их работы понять можно :)
Позволю себе чуточку критики в сторону TDLib. Во первых, почему нет s-версии функции с возможностью указать длину входной строки, а tdjson полагается исключительно на \0 в конце строки? Во вторых, почему const char*, а не wchar_t*? Сейчас юникод во входной строке приходится escape'ами превращать в \u-последовательности. После этого, нам нужно написать обёртку над TDLib, которая будет вызывать для зарегистрированных событий специальные функции, называемые коллбэками. При этом закомментированный WriteLine снизу — это «дебаг» для того, чтобы узнать названия неизвестных мне ивентов :)
В каждом объекте, полученном с помощью receive, есть поле "@type", которое содержит в себе имя класса возвращаемого объекта. Первый же вопрос от читателей — почему я использую JObject с ручным дерганьем нужных полей и вручную пишу JSON в виде строковых литералов вместо нормальной сериализации/десериализации? Ответ прост: во-первых, для актуализации Data-классов придется писать кодогенератор из TL-схемы, а во-вторых иногда TDLib может возвращать немного разные объекты в JSON, из-за чего приходится мудрить с атрибутами на этих самых Data-классах, иначе десериализатор выбросит исключение. Это решается нормальными юнит-тестами на всех вариантах данных, но зачем себе в колени стрелять, если нужен конкретный фиксированный функционал и лишь малое число от всех полей, возвращаемых TDLib?
string recv = NativeInterface.Receive(10.0d);
if (recv != null) { JObject json = JObject.Parse(recv);
if (!handlers.ContainsKey(type)) { //Console.WriteLine("Unknown event type: {0}", type); continue; }
handlers[type](recv, json); }
Теперь переходим к самому интересному — обработке событий и реализации синхронного клиента, который позволяет без async/await просто запросить список сообщений и сразу же его получить (такой подход может быть полезен и юзерботам, которые не хотят размазывать стейты по всей программе). Почему без асинков? Честно сказать, мне они просто не нравятся: как привык к концепции wait/notify и коллбэков из Java, так их и юзаю всю жизнь :)
Сначала TDLib запрашивает параметры инициализации (стейт authorizationStateWaitTdlibParameters), затем если пользователь не авторизован — запрашивает номер телефона и код подтверждения (плюс дополнительные шаги для авторизации если они есть). В конце, TDLib возвращает стейт Ready, что означает готовность библиотеки к работе:
После этого, можно начать работу с данными. Обратите внимание, мой подход потоко-небезопасен, его нельзя дергать из нескольких потоков одновременно! В коде ниже, я вызываю метод для фетча сообщений, а затем в соответствующем коллбэке от TDLib обрабатываю данные (дабы статья не разрасталась на 20+ минут, я чуть урезал все листинги).
public List<Message> QueryMessagesInChat(long chatId, long lastMessage, int count) { messages.Clear();
public User QueryUser(long userId) { string json = Utils.Format("{\"@type\": \"getUser\", \"user_id\": \"{0}\" }", userId); NativeInterface.Send(InstanceID, json);
waitHandle.WaitOne(); return user; }
Переходим к реализации самого сервера, для наших целей хватит обычного HttpListener. Сначала мы зарегистрируем все поддерживаемые методы и занесем их в ассоциативный список ключ-значение. Сами методы реализованы в виде делегатов, которые принимают лишь один аргумент — список параметров из строки запроса, а возвращают строку — все ответы, за исключением особых (связанных с загрузкой вложений) — текстовые.
Переходим к обработке запроса. Метод ищет, зарегистрирован ли запрошенный метод и если да, то парсит строку запроса, которая начинается с "?", которую затем передаёт в виде коллекции ключ->значения обработчику метода:
А сами методы, в свою очередь, дергают соответствующие функции из клиента и формируют на их основе датасет в примитивном формате:
public staticstring QueryChats(Dictionary<string, string> args) { if(args.ContainsKey("count")) { int count = int.Parse(args["count"]); StringBuilder ret = new StringBuilder();
В результате получаем вот такой простой датасет, который, как я и говорил, легко распарсить и на Siemens C60, и на Atmega328 — да где угодно! В целом, такой сервер можно использовать для реализации бота в телеграме, который будет передавать показания каких-то датчиков, сигнализацию и прочие клевые штуки!
Переходим к реализации клиента, т.е. приложения на Android. Здесь будет не менее интересно!
❯ Пилим для Android
В геймдеве есть своеобразный мем — некоторые инди-разработчики сначала начинают делать меню, вместо основного геймплея, что становится предметом насмешек среди других разработчиков. Но в разработке приложений для смартфонов всё по другому — здесь как-раз таки хорошо заранее продумывать макет будущего приложения!
Поскольку у нас с вами мессенджер, то главный экран должен представлять из себя список чатов (ListView) и верхнюю панельку, где в будущем могут разместиться настройки и свайп-менюшка:
Такой вот простой макет.
Каждый пункт меню — это тоже отдельный layout, в котором мы по шаблону строим внешний вид будущего элемента списка. На немолодых устройствах есть смысл использовать как можно меньше контейнеров в layout'е, поскольку пересчет позиций и размеров элементов — одна из самых «тяжелых» операций в UI-фреймворке вообще. Кроме того, не стоит использовать кучу картинок и drawable — в Android 2.x всё 2D рисуется софтварно, аппаратное ускорение появилось только в 3.0 (частично).
Но дабы в списке диалогов что-то появилось, нужно сначала реализовать фетчинг (получение) этих самых диалогов с сервера! Сам объект, который занимается обработкой запросов называется ClientManager и является синглтоном — он в единственном экземпляре на все время работы программы. Помимо менеджмента «ноды» (т.е. прокси-сервера), токена для авторизации и обработчика ошибок, ClientManager реализует метод для асинхронного запроса информации с сервера и, собственно, формирует строки запросов с помощью соответствующих методов:
Подгрузка чатов и сообщений реализована через Adapter — концепция «виртуальных» списков, которая предполагает что система создаст не 50 элементов интерфейса на каждую кнопку чата, а только 5 и будет их виртуально «мотать по кругу», обновляя только данные в уже существующих элементах. Это позволяет значительно ускорить отрисовку, учитывая то, что Android 2.x Canvas рисуется программно.
Ну вы уже явно замучились видеть простыни кода, давайте посмотрим что у нас вышло!
Шустренько, да? А ведь это ультрабюджетник Alcatel OT-916D, один из последних массовых дешевых QWERTY-смартфонов за 5 000 рублей из 2012 года. Кстати, смартфон подарил мне читатель chuvakoff с Хабра!
Переходим к окну чата. Основной макет почти такой-же, как и у основного окна: только добавилась панелька для ввода сообщения снизу.
Концептуально, всё тоже самое — запрашиваем данные с сервера, парсим их и загружаем в адаптер, благодаря чему мы сможем листать наш диалог. Однако в сообщения я добавил контекстное меню с стандартными фишками типа копирования, ответа и прочих подобных действий. Поскольку у нас нет ни пушей, ни еще каких-либо средств для поулчения данных о новых сообщениях, я раз в определенный интервал просто получаю сообщения — и если новый датасет отличается от старого — обновляю окошко чата.
Переходим к реализации поля для ввода сообщения. Здесь всё просто — на серверсайде за это отвечает метод SendMessage. Однако для того, чтобы с нашего клиента можно было ответить на другие сообщения, я ввёл также «контекст ответа», в котором запоминается сообщение, на которое мы хотим ответить. Telegram также поддерживает Markdown, однако его полная поддержка пока не реализована.
В остальном же, функционал конечно пока совсем базовый, однако клиент работает очень шустро даже бюджетной X10 Mini Pro и позволяет чатится с моими читателями в Telegram. В будущем хотелось бы допилить:
Поддержка картинок: Сейчас уже есть кривоватый механизм кэширования изображений на стороне сервера, который позволяет загружать аватарки чатов. В будущем, я добавлю поддержку «галерей» с картинками!
Поддержка голосовых сообщений: Не все их любят, но они порой удобны и выручают. Реализую как прослушивание, так и запись!
Подробный просмотр профилей и менеджмент чатов: Удаление сообщений, чатов и прочие фишечки из официальных клиентов.
Казалось бы — до официальных клиентов ещё очень далеко. Но сам факт, чтобы всё это работало достаточно шустро на девайсах, которым уже более 10 лет!
❯ Звучит интересно! Как заюзать твой клиент?
Тут всё очень и очень просто! В первую очередь, нам понадобится ПК с белым IP, роутер (если под него есть сборка dotnet), либо VDS. Виртуальные сервера сейчас стоят копейки, у ТаймВеба есть тариф за 188 рублей в месяц, которого с головой хватит для нашего сервера.
Такая вот рекламная интеграция (к слову, прокси для всех приложений уже более года крутятся именно на мощностях TimeWeb Cloud)!
Программа сначала запросит номер телефона, а затем код подтверждения Telegram. После этого будет создана папка tdlib/, где будут хранится данные вашей сессии, а также файл authkey.txt, где хранится случайный ключ для сессии (md5 phone_number + response code + псевдослучайное число). Не оставляйте его в /var/www/!
Если всё нормально, программа начнёт слушать порт 13377 на всех сетевых интерфейсах, в т.ч и в локальной сети. После этого, ставим уже предварительно собранный, либо собираем сами в Android Studio APK и в окне авторизации пишем адрес ноды и ключ авторизации. Если всё настроено верно — программа запомнит сервер и будет работать без проблем! Вот так всё легко :) Как видите — всё очень и очень просто!
Кроме того, буквально за пару дней до публикации статьи я сел вечерком из интереса что-нить под Java-телефоны попилить… и, как и обещал, реализовал Proof of Concept возможности работы Telegram даже на сонериках, которым скоро 20 лет стукнет! А ведь если ещё чуть заморочится, можно запустить приложение даже на преусловутых монохромных сименсах!
❯ Заключение
Вот такой у нас получился проект с реализацией лёгкого, примитивного, но тем не менее рабочего клиента Telegram, который на клиентской части вообще не использует никаких зависимостей. Вес собранного APK в release-версии — всего 54 килобайта! Понятное дело что с ростом функционала, вес программы будет увеличиваться, но я обещаю — больше 1Мб он не вырастет :)
Ну а вам, моим читателям, надеюсь было интересно прочитать такой «двойной материал» не только о разработке сетевой части без использования Apache/nginx/IIS, но и UI-фронтэнда для Android-смартфонов, которым уже более 10 лет! Исходный код проекта можно найти на моём GitHub: как приложения, так и сервера, а также убедиться в отсутствии каких либо закладок и, если совсем не доверяете, собрать бинарники сами! Для сборки понадобится VS2017 или свежее, а также Android Studio 2.3.2 (если собираете для Android 2.1 и ниже).
Друзья! Сейчас на Хабре опросы сломаны, поэтому если у вас есть желание, вы можете проголосовать в комментариях: какой стиль статей вам больше нравится — где больше конкретики и кода с пояснением как конкретно работает та или иная часть программы, или наоборот стиль ближе к научпопу, где фрагментов кода нет, или их значительно меньше? Пишите своё мнение о проекте в комментариях!
Кроме того, у меня есть канал в Telegram, куда я публикую бэкстейдж статей, ссылки на новый материал, свои наработки, а также посты о ремонте девайсов и различные мысли.
Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать новые статьи каждую неделю!
Мемный контент получает реакции, вирусится и запоминается, а учёные подтвердили, что мемы помогают справляться со стрессом. Бренды, которые умеют делать мемы, всегда на слуху, но не каждый копирайтер может придумать годный контент. А мемолог может
Привет! С вами КОМРЕДА — агентство контент-маркетинга, которое помогает бизнесу расти. Кроме редакторов, авторов и иллюстраторов в нашей команде есть мемолог. Мы привлекаем его не ко всем своим проектам, но для некоторых он очень полезен. Рассказываем почему.
Зачем бизнесу мемолог
Не все попытки завоевать аудиторию юмором бывают успешными. Есть много кринжовых мемов, назовём их условно «шутками за триста». Они не приносят бизнесу пользу и не формируют вокруг него комьюнити лояльных пользователей. Пример ниже:
Мемолог же делает так, чтобы о бизнесе говорили много и позитивно. Смешные картинки помогают решить репутационные задачи.
Мемы формируют образ бренда. Они помогают сформировать уникальный стиль общения с аудиторией, сделать его понятным и позитивным. Например, «ИКЕА» несколько раз троллила Balenciaga, делая упор на цены люксового бренда.
Икеа сделала фото с полотенцем за 10 долларов, которое повторяет образ модели в юбке-полотенце Balenciaga за 925 долларов. Источники — пресс-служба «ИКЕА» и Balenciaga
Мемы помогают быть на волне трендов и на слуху. Мемы часто завязаны на инфоповодах. Например, управляющая компания «Зелёный бульвар» из Владивостока опубликовала мем по мотивам нашумевшего сериала «Слово пацана».
В отличие от большинства российских коммунальщиков, в канале «Зелёного бульвара» не нужно пробираться сквозь бюрократию и официоз. Наоборот, здесь любят шутки и мемы в коммуникации с жильцами домов.
Мемы создают эмоциональную связь с клиентом. Мемами делятся активнее, чем текстовыми постами. И это решает сразу две задачи бизнеса: повышает узнаваемость и поднимает охваты бренда в соцсетях.
Хорошие мемы приносят бизнесу подписчиков и лояльную аудиторию. Плюс мемов ещё в том, что их можно использовать на разных площадках, адаптируя под нужный формат. Например, Durex перед новогодними каникулами создали отпускные аватарки для подписчиков.
Компания затронула актуальную тему — работу в новогодние праздники — и дала готовое решение для подписчиков в своём стиле. Источник — телеграм-канал Durex
Мемы показывают клиентам боли и их решение. Мемы активно вирусятся и получают реакции, потому что многие узнают в них себя. Бизнесу это помогает дотянуться до болей целевой аудитории, в решении которых компания может помочь. Например, Генконсульство России в Дубае в своём телеграм-канале размещает полезные инструкции без лишней бюрократии.
Мемы разбавляют продающий контент и помогают не душнить. Люди заходят в соцсети не только за покупками и полезным контентом. Ещё они хотят расслабиться, отвлечься, поднять себе настроение. Каким бы ценным ни был контент бизнеса, уставший пользователь, скорее всего, проскроллит его не читая. А вот мимо смешного мема вряд ли пройдёт.
У «Авиасейлс» почти 150 000 подписчиков в телеграм-канале. Мемы и шутки — стандартная форма общения для компании. Источник — телеграм-канал «Авиасейлс»
На каких площадках заходят мемы
Мемы можно публиковать на всех площадках, куда люди заходят, чтобы отвлечься. Чаще это соцсети — Телеграм, YouTube, Twitter, запрещённая соцсеть с картинками.
Но соцсетями мемы не ограничиваются. Например, на vc.ru мемы часто используют, чтобы иллюстрировать мысли из текста. Если это не противоречит ToV бизнеса, мемы можно использовать в блоге компании для email-рассылки. Например, так «Авиасейлс» рассказывает новым подписчикам, какие письма они будут получать на почту.
В сообщении делают акцент на болях в типичных рассылках о билетах — высоких ценах и неинтересных статьях. Но пишут об этом с юмором. Источник — email-рассылка «Авиасейлс»
На чём строится работа мемолога
Многие думают, что мемолог — это очень творческая профессия: нужно просто сидеть и придумывать смешные видео и картинки. На самом деле даже в такой «несерьёзной» профессии всё начинается с понимания задачи и чёткого регламента работы.
Мы попросили нашего мемолога Катю рассказать, как она создаёт мемы, и вот что она ответила.
Работа по созданию мемов строится так:
→ Изучаю возможности клиента, его услуги и запрос, с которым он приходит в агентство.
→ Смотрю контент-план клиента и актуальные темы постов.
→ Формулирую идею мема.
→ Нахожу референсы и изучаю тренды. Это важно, потому что тренды меняются быстро, постоянно появляется что-то новое. Чтобы не быть в глазах подписчиков вымирающим мамонтом, нужно знать об актуальных инфоповодах и уметь подстраивать их под бизнес клиента.
→ Монтирую ролики, накладываю текст, музыку, видео — чтобы всё вместе смотрелось интересно и понятно.
→ Согласовываю мемы с клиентом.
Иногда заказчик вносит правки в мемы. Это тоже работа мемолога — сделать так, чтобы понравилось читателям, но не упустить пожелания заказчика
Катя Максимова, мемолог КОМРЕДЫ
Например, в конце 2023 года для клиента сделали мем на основе фрагмента хайпового сериала «Слово пацана». Вот что получилось:
Мы сравнили результаты продуктовых и мемных постов. Оказалось, что весёлый контент набирает в среднем в полтора раза больше реакций — лайков и просмотров. Например, если ваш продуктовый пост обычно набирает тысячу лайков, то мемный может принести полторы тысячи. Неплохо!
Так мы подтвердили гипотезу, что мемы работают на этапе вовлечения — когда нужно привлечь внимание к бренду. Но вряд ли для бизнеса, даже крупного, оправдан штатный мемолог. А вот для агентства контент-маркетинга такой специалист — хорошая боевая единица наряду с копирайтером и маркетологом. А что думаете вы?
Приходите к нам в КОМРЕДУ за контентом: статьями для vc.ru и блога, колонками в СМИ, SEO-текстами, постами для соцсетей. И за мемами тоже приходите, чтобы не душно общаться с аудиторией, наращивать охваты и популярность бренда.
Приходите к нам в КОМРЕДУ за контентом: статьями для vc.ru и блога, колонками в СМИ, SEO-текстами, постами для соцсетей. И за мемами тоже приходите, чтобы не душно общаться с аудиторией, наращивать охваты и популярность бренда.
В 2011 году я провёл свою первую вечеринку, в которую вложил немало сил и средств, но получить прибыль от неё мне не удалось. Мы с партнёром отбили лишь 50% затрат.
Я не раз размышлял на тему того, почему так получилось и вот некоторые причины:
- не до конца понимал, как правильно доносить информацию до целевой аудитории;
- не знал, на кого из артистов хорошо пойдёт публика;
- планирование было слишком простым, надо было лучше продумать рекламную часть;
- на входе стояли не самые надёжные люди, которые вполне могли украсть часть денег;
- глупо было рассчитывать на процент от бара;
- рекламы в интернете не было совсем.
После первого мероприятия мы с партнёром расстались, а я продолжил заниматься продюсированием мероприятий. Уже через год я начал делать вечеринки в крупных клубах Питера, какие-то из них окупались, какие-то – нет, но на стабильный доход выйти так и не удалось.
Меня хватило ровно на 3 года, после самой крупной моей вечеринки в Зале Ожидания я понял, что выгорел и больше не могу заниматься этим. Попытки ещё были, что-то я пытался делать, но, по правде говоря, всё затевалось больше ради того, чтобы начать выступать на сцене и с этой задачей я отлично справлялся до августа 2014 года.
Сейчас я понимаю, что можно было развиться до концертного агентства, заняться букингом артистов и проводить корпоративы и праздники. Поле-то не паханное было, бери и делай, как говорится.
Кстати, корпоративами и праздниками я тоже пытался заняться, даже почти пошло, но в последний момент не хватило смелости, чтобы запустить этот проект. Даже пара запросов уже было, а я так и не решился.
Сложно сказать, что конкретно тогда повлияло на моё решение, однако, я точно знаю, что мне нужен был системный маркетинг. Запрос на него был сформирован, но я настолько сильно выгорел за три года, что так и не смог настроить маркетинг в этом проекте.
Чуть лучше дело было, когда я начал тестировать другие ниши в промежутке с 2014 по 2016 годы. Самый нелепый тест был, когда я закупил на Алиэкспресс чехлов для Айфонов и так и не смог их продать.
Хорошо начало получаться, только в 2017 во время запуска курьерской службы. Спойлер: этот бизнес тоже пришлось закрыть.
Тут я и в запросы аудитории сразу же начал попадать, и площадка для первых тестов была выбрана правильно, а опыт в продажах и моя любовь к хорошему сервису для клиентов повышали мои конверсии раза в 3-4 точно, но если честно, то мне не с чем сравнивать. Просто важно показать, что в продажах я не впариватель, а сервисник, к которому клиенты потом не раз ещё возвращаются.
На этом бизнес-проекте получилось реализовать стратегию минимально работающего продукта (MVP), когда у нас есть какой-то продукт и какой-то работающий канал продаж, который можно довести до системы и начать масштабировать. Однако на поиски MVP может уйти приличное количество времени как у стартапа, так и у системного бизнеса, у которого даже может работать какой-то маркетинг.
Разница будет лишь в том, что у системного бизнеса больше шансов пережить период тестов, чем у стартапа. К слову, со стартапами всегда так, 98% из них обречены на провал. Кстати, опять же по причине плохо проведённых маркетинговых исследований перед составлением стратегий привлечения клиентов, т.е. большинство стартапов плохо изучают потребности целевой аудитории перед созданием продукта.
Часто бывает так, что стартап или бизнес проводят кастдев, но задают совершенно не те вопросы. Например, вы рассказываете потенциальному клиенту про свой новый продукт во всех деталях и в конце задаёте вопрос: «Как вам наш продукт? Купили бы его?». В большинстве случаев ваш собеседник ответит, что продукт интересный и вот вы преисполнились оптимизма, сделали продукт, потратили деньги инвесторов или свои, а продаж-то нет.
Как так? Ведь продукт был так всем интересен! А вот так!
Вопросы были неправильные, не про проблемы клиента, которые он решает, а про то, какую крутую штуку вы делаете. Продукт должен решать проблему клиента и от этого должны строиться вопросы на кастдеве.
Вообще проведение кастдевов, это отдельная наука, но чуть лучше понять, как их проводить вы сможете с помощью книги «Спроси маму». Для начала этого будет вполне достаточно.
Итак, провели кастдев, упаковали продукт и рекламные офферы, теперь можно приступать к первым продажам. Продажи — это первое, что должно волновать любой бизнес-проект. Очень многие, особенно новички, почему-то игнорируют этот факт. А зря!
В идеале, если есть такая возможность, запустить предварительные заказы ещё до выпуска продуктов в продажу. Так делает тот же самый Apple, Samsung и многие другие бизнесы. Во-первых: так вы сможете пощупать первый спрос. Во время такого теста может оказаться, что надо переделывать офферы или переупаковывать продукт.
А как вообще провести кастдев, а главное, с кем его проводить? Тут я рекомендую подумать над следующими моментами:
- кому точно нужен продукт;
- где могут быть эти люди;
- как с ними можно пообщаться самыми простыми способами;
- какие проблемы решает продукт;
- что получит потребитель этого продукта;
- подготовить список правильных вопросов.
Все моменты продумали, подготовились и даже провели кастдевы минимум с 30 людьми. Собрали и проанализировали все данные, на их основе упаковали продукт, соцсети, сайт и запустили рекламу. Если всё правильно сделано, то первые продажи не заставят себя ждать. Если продаж нет, то надо смотреть все этапы воронки продаж с момента кастдева, до момента конверсии в заявку, возможно ошибка на каком-то из них.
А бывает и так, что воронка работала-работала и в какой-то момент перестала. В таком случае тоже необходимо всё изучать под микроскопом, причём речь и про маркетинг, и про отдел продаж. Часто бывает так, что надо разбираться с менеджерами, например, потому что они начали сливать заявки. Моментов, через которые можно повлиять на конверсии довольно много о них я пишу в своём Телеграм канале «Иван Сырицо | Стратегический Маркетинг».
Как вы уже, наверняка, поняли, маркетинг любого продукта начинается с изучения целевой аудитории и её потребностей. Без этого шага все ваши усилия будут похожи на стрельбу из пушки по воробьям.
Оно того стоит. Старые методы работают, но подойти нужно с умом. Кстати, такой вариант можно использовать на b2b рынке. Проверено. Работает! Но сейчас мой рассказ про b2c.
Напечатанные рекламные материалы
12 лет работаю в маркетинге. Еще помогаю супруге в развитии локальной IT-школы для детей. В далёком 2019 году она первая вошла в городе на этот рынок. Конкуренции не было. Сейчас есть, а именно 5 частных и одна от государства школа.
Чуть более года назад супруга решила открыть дополнительное направление графический дизайн. Задача стояла набрать две группы по 8 человек.
Путь по протоптанной дороге
Рекламу настраивал и получал лиды из Директ, MyTarget, VK и МТС маркетолог. Каналы хорошо работают при умном подходе. Но есть одна проблема, большая проблема - их используют все. Причём на постоянной основе. Следовательно, нужно постоянно искать новые нестандартные подходы.
Идея из 90-х
Теперь к сути. Поднимаясь по лестнице домой увидел в почтовом ящике письмо в конверте и спам листовки. Зашёл в квартиру и стал первым делом открывать конверт. Остальные рекламные бумажки не глядя выкинул в мусорное ведро.
В конверте был счёт на оплату налогов за автомобиль. Далее в этот же день расплатился с государством за транспортный налог. Потом сел проверять и анализировать запущенные рекламные компании для школы супруги. Мельком поглядывал на конверт. Что-то на нём рисовал и меня осенило.
Распаковка
Почему бы не попробовать запустить рекламу в конвертах по почтовым ящикам? Маркетинг, это не наука, а эксперименты. Поэтому сразу начал прорабатывать эту мысль.
Обычно мы все негативно воспринимаем спам в ящиках. Стараемся быстро от него избавиться. Толком не читаем, что нам положили. Но конверты открываем все!
Закупка конвертов и печать листовок - 3700 рублей
Именно столько потратил на эти задачи. Дизайн нарисовал сам. Далее распечатал на цветном домашнем принтере. Формат бумаги использовал А4. Стоимость 2000 конвертов обошлось мне в 3700 рублей. 400 рублей из них составила доставка СДЭК.
Коробка с конвертами
Общие затраты на 1000 конвертов:
1000 конвертов - 2000 рублей (Авито рулит).
1000 шт. А4 бумаги - 1000 рублей (900 с чем-то, но округлим).
Краска в принтере примерно на 300 рублей.
СДЭК - 400 рублей.
Услуги разносчика по почтовым ящикам - 2500 рублей.
Итого: 6200 рублей.
Итого: 6200 рублей.
Выбор домов для разноски
Таргет настроить к сожалению в моём случаи нельзя. Поэтому прекрасно понимал, что письмецо получат бабули, дедули и другая не целевая аудитория.
Следовательно, нужно было выбрать дома правильно. Моя ЦА - семьи с детьми от 9 лет. Решения принимают в основном мамы. Поэтому упор должен быть на них.
Около школы находился относительно молодой квартал. Он так и называется "Молодёжный". Именно в этих домах оказались мои конверты.
Как же привлечь мам?
Куда периодически ходят женщины? Правильно! Салоны красоты, макияжа, парикмахерские, массажные салоны и т.п.
Далее сформировал таблицу со всеми вышеперечисленными услугами. Использовал Яндекс Карты для поиска компаний. Потом составил текст электронного письма для рассылки этим компаниям.
Готовые конверты
Написал о пользе партнёрства. Указал для них плюсы: бесплатный охват, возможность получить новых клиентов и т.п. Мои условия для них тоже были. Им надо было согласиться предоставить купон на N рублей на их услуги.
В итоге за два дня я получил обратную связь от 6-ти компаний. Работать получилось только с двумя. Одна дала 1000 рублей купон на услуги массажа, вторая - 500 р. в салон красоты.
Лид магнит готов
За просмотром фильма паковали конверты
Теперь прочтение моего письма увеличились в разы. Пусть небольшая, но реально халявка для моей целевой аудитории.
В итоге в конверте были листовки с бесплатным посещением одного занятия и два купона. Их две предпринимательницы предоставили сами.
Жду 7 дней
Именно столько отвёл на обратную связь с рекламы по почтовым ящикам. В этот период поступило 12 звонков и 2 оставили заявку на сайте. У 6-ти мам ребёнок оказался младше 9 лет. Они отминусовались. Оставшихся восьмерых детей жена записала на пробное занятие. Дошли до него 6. Да, такое бывает, что кто-то не доходит. Причём потом не берут трубку. Ну ладно.
Все 6-ть клиентов после первого бесплатного занятия оплатили абонемент. 2 ребёнка проходили только месяц. Остальные - целый сезон.
Математика
2000 рублей - месяц занятий.
4 клиента проходили целый сезон - 72000 рублей.
2 клиента проходили 1 месяц - 4000 рублей.
Итого: 76000 рублей.
Эксперимент удался. Скоро повторю его снова. Причём эти клиенты привели по рекомендации еще парочку. Плюс часть из них продолжает ходить на постоянной основе.
Если есть вопросы → пишите в ЛК. Могу поделиться опытом.
Друзья, доброго времени суток. Меня зовут Нурмагомедов Арип, я основатель рекламного агентства "BENCHMARK", а так же блога "Коммерсанты". Сегодня расскажем о нашем самом первом кейс, когда мы только взялись за этот проект, он был одним из самых маленьких проектов в тематике кулинария, а спустя год он в списке самых крупных Telegram-каналов в сфере кулинарии. На сегодняшний день в нем более 100.000 подписчиков.
Как и всегда, расскажем все в деталях и с подробностями: 20 декабря, к нам обратился клиент с вопросом о создании Telegram-канала под ключ. Клиент был новичком в данном рынке и это был его 1-ый запуск проекта, который он хотел успешно запустить, и минимизировать свои риски.
Нашей командой было предложено готовое бизнес-решение для создание проекта, которое позволяло за 7-ь дней подготовить проект к запуску, а уже на 12-ый день совершать 1-ые продажи, получать прибыль с проекта и окупать свои стартовые вложения. И так давайте пройдемся по каждому этапу по проделанной нами работой.
Этап 1. Определение стратегии и бюджета
Наше агентство, рассматривает варианты со стартовым бюджетом от 200.000 рублей, поскольку маленькие бюджеты не дадут ту самую прибыль, которую Вы бы хотели иметь с канала, с учетом затрачиваемого времени на его дальнейшие ведение. Выше вложение = выше прибыль.
С нашим клиентом мы определились со стартовым бюджетом в 200.000 рублей. (+100.000 рублей на дальнейшее финансирование проекта, после запуска) в будущем этот бюджет будет эквивалентен 12.000 подписчикам (а на конец января 17.000 подписчикам) и охватам в районе 3.000-4.000.
С учетом того, что СРМ будет равен 300-350 дальнейшая ежедневная выручка будет составлять от 3.300 до 3.900 рублей.
Так же специально для клиента мы создали финансовую модель с помощью, которой ему будет удобно фиксировать все доходы и расходы, закупы и продажи — это позволит сэкономить в будущем время, а так же построить стратегию развития своего канала на будущее.
Этап 2. Создание/доработка концепции Вашего канала
На данном этапе мы совместно с нашим клиентов разобрали тематики с нарастающим спросом, и отсутствующим предложением на рынке telegram-каналов. И из 10-и тематик наш выбор упал на сферу "Еды и кулинарии" с женской целевой аудиторией.
Нашей командой было предложено более 20-и названий для канала, и в конечном счете выбор упал на название "Авокадо | Рецепты От и До".
Этап 3. Проработка контент-плана
На следующем этапе совестно с заказчиком определились с оформлением контента, учли все пожелания и требования для будущих постов. А так же опубликовали 1-ые 10-ть постов для подготовки к запуску и подготовили контент на 30-ть дней вперед (по 7-мь постов в день).
Этап 4. Создание авторского дизайн-оформления
Один из немаловажных факторов является разработка привлекательной и бросающейся в глаза аватарки для Telegram-канала и описания канала. Поскольку у заказчика не было идей, за счет наводящих вопросов и анализу рынка мы разработали следующий логотип:
Этап 5. Подключение всех необходимых сервисов
После полного оформления необходимо было настроить автоматизацию для канала: от работоспособности ботов по публикации, автоматического приема на канал и отправки приветственного сообщения подписчику до добавления в биржи.
Канал так же был добавлен в нашу рекламную биржу "BENCHMARK Media" - это позволило нашему клиенту закрывать места на канале просто и быстро.
Этап 6. Создание и тест рекламных креативов
На данном этапе мы предварительно обсудили главную идею креатива с заказчиком, и нашей командой был разработан и протестирован рекламный креатив. Был написан текст для креатива, а так же разработан видео-креатив, который повысил конверсию и интерес будущих подписчиков к каналу.
Этап 7. Закуп рекламы и доведение до первых покупателей
За счет хорошего креатива, который мы разработали на 6 этапе, нам получилось привлечь подписчика на канал от 8 до 20 рублей. При потраченных на рекламу 299.899 рублей за январь, нам удалось привлечь 17008 подписчиков, а цена за подписчика обошлась в 17,63 рубля. Ниже предоставляем отчет с Telemetr'а (так же полученные результаты вы можете проверить на аналитических сервисах):
Этап 8. Полноценное ведение и консультации, чтобы Вы окупили канал как можно быстрее
На данном этапе мы даем базовые знания нашему заказчику, добавляем его во все актуальные биржи, рассказываем, как правильно закупать и, как совершать продажи, как подбирать контент, и Наше агентство заинтересован в Вашем успехе и в вашем росте.
Всего 20 дней
Именно столько дней нашей команде потребовалось, что бы создать канал и позволит зарабатывать нашему клиенту от 150.000 рублей в месяц.
С учетом стартовых вложений в 200.000 рублей + добавлением 100.000 рублей до конца месяца. Нам удалось привлечь 17008 подписчиков по цене 17.63 рубля., охваты на канале были в районе 6500-7000 на пост, соответственно и рекламу нам удалось продать на момент старта проекта по завышенному СРМ.
По нашим расчетам, данный проект выйдет на точку безубыточности через ~2-5 месяцев, и дальше будет приносить только чистую прибыль.
Если Вы не хотите обжигаться на большом количестве этапов по запуску своего канала, а просто хотите обойти все подводные камни и сделать успешный запуск, научиться всему и перенять наш опыт, то мы будем рады нашему дальнейшему сотрудничеству.
Наша команда сделает все возможное, что бы Вы стали обладателем того самого канала, который будет приносить Вам прибыль, а окупаемость проекта будет достигнута за короткий промежуток времени за счет хорошего запуска и полученных от нас знаний.
В ближайшее время так же будет дополнение к кейсы, где мы расскажем, как нам удалось в течении года сделать из маленького канала в 17тыс. пдп, превратить его в один из самых крупных тематик в Telegram и набрать более 100тыс. пдп. Так же расскажу, что выходит по цифрам и немного раскрою занавесу финансового учета.
Привет, меня зовут Алексей Прытков. Я копирайтер на фрилансе. Анализируя блоги различных экспертов, пришёл к выводу, что большинство из них не публикует кейсы. Для меня это удивление, ведь один из основных способов продать продукт, это наглядно показать, как он решает проблемы клиентов.
Для кого написана статья
Исходя из исследования компании Content Marketing Institute, 74% маркетологов используют кейсы для привлечения новых клиентов. Информация не будет открытием для экспертов в области маркетинга. Несмотря на это, возможно, вы подчеркнёте для себя что-то новое.
Статья ознакомительно-обучающая, для тех, кто не предаёт кейсам должного значения. Для тех, кто оказывает различные услуги: психологи, врачи, тренера И ТД. Программа статьи:
Программа статьи
Что такое кейс и почему он важен
Структура кейса и её написание с примерами
Как писать кейсы для социальных сетей
Написание заголовка
Важность визуализации
Площадки для публикации кейсов
Приятного чтения, господа.
Что такое кейс и почему он важен
Кейс – это описание решения проблемы, с которой столкнулся ваш клиент…
Изложите кейс так, чтобы потенциальный клиент увидел решение СВОЕЙ проблемы. Тогда ему захочется повторить результат предыдущего клиента.
Почему важно уметь писать кейсы:
Демонстрируют навыки и опыт: Кейс показывает, что вы решаете проблемы и достигаете конкретных результатов. Это повышает к вам доверие потенциальных клиентов.
Помогают выделиться среди конкурентов: В мире конкуренции, кейсы могут помочь выделиться из толпы.
Помогают закрывать сделки: Кейсы убедительные. Они подтверждают, что вы можете помочь достичь целей.
Исследование, которое подтверждает важность написания кейсов, было проведено в 2022 году компанией Hubspot. В исследовании участвовало более 1 тыс. маркетологов из разных стран. Результаты исследования показали что:
94% маркетологов считают, что кейсы — результативный способ привлечения новых клиентов.
86% маркетологов используют кейсы для демонстрации навыков и опыта.
78% маркетологов считают, что кейсы помогают повысить узнаваемость бренда. В исследовании также было установлено, что кейсы, которые содержат следующие элементы, вызывают больше доверия у читателя.
1. Чёткую и лаконичную структуру. 2. Яркие и убедительные примеры. 3. Доказательства результатов.
Исследование компании Hubspot подтверждает, кейсы важный инструмент, для лояльности клиентов. Они помогают привлекать новых покупателей, повышать узнаваемость бренда, демонстрируют навыки и опыт.
В 2019 году Hubspot провёл исследование, которое показало, что кейсы — значимый тип контента для привлечения новых клиентов. Более 50% респондентов отметили, что они используют кейсы для принятия решения о покупке продукта или услуги.
Кейсы помогают убедить потенциальных клиентов в качестве продукта или услуги, выставляя результаты и показывая, как они решают проблемы клиентов.
Таким образом, использование кейсов увеличивает конверсию в продажу.
Структура кейса и её написание
Кейс состоит из 4 составляющих:
Случай
Задача
Решение
Результат
Важно использовать все 4 составляющие. Представьте пазл, если деталей не хватает, картина не сложится. Также в написание кейса, если выкинуть часть, читатель не увидит картину. Описывать нужно подробно, чтобы как можно сильнее попасть в боль.
1. Случай: описываем при каком обстоятельстве и с какой проблемой обратился клиент.
Я приведу в пример вымышленную историю, основанную на реальных событиях. На тот момент я консультировал бесплатно, чтобы после консультации им же предоставлять услугу за деньги, хитрый план. Обращается ко мне женщина, не понимает в чём причина, лендинг не приводит покупателей. Поехали…
Женщина с мужем открыли семейный бизнес по косметологии. Они накачивают губы, делают скулы как у Анджилины Джоли, убирают второй подбородок, волшебники XXI века. Используют супербезвредный материал, лучшие мастера вселенной, короче всё как у всех.
Смекнули, чтобы были клиенты, нужна реклама. Завели блог в запрещённом приложении и решили создать сайт. Поискав информацию в интернете, лендинг им показался наилучшим вариантом. Вроде и делается легко и пользу приносит.
Наши бизнесмены сели и начали мозговать, как воплотить желаемое в настоящее. Посмотрев пару уроков по «созданию лендинга на коленке» начали творить. Сами написали текст, придумали дизайн, структуру, так ещё и яндекс директ обучились настраивать за два дня. Талантище. Опыта до этого не было.
Да вот незадача, лендинг не приносит результат, реклама кое-как крутится, а клиентов не прибавляется. Через 1000 ртов, рекомендации и божью прихоть они наткнулись на меня. Рассказывают вышеописанное. Я испугался смотреть их лендинг, но решился. Они скидывают и тут…
За жизнь видел много плохого, ну это перешибло любое воображение. Фон это бесконечно много поцелуйчиков от больших губ с намазанной яркой помадой, всё розовое. Слова из-за фона читаются с трудом. Сам текст комментировать не буду, а то мы здесь на три часа зависнем. Заявки приходят непонятно куда, там расчёт на телефонный звонок был. Реклама крутится на всю Россию. На одностраничном сайте описаны 9 услуг, это нонсенс. Там проблем больше чем у 100-летней старухи хронических болезней.
Если бы такую работу сделал маркетолог, его следовало бы застрелить. В их случае ничего страшного. Невозможно сделать хорошо за 2 дня, чему учатся годами.
2. Задача: описываем, что нужно починить.
Разобраться, почему лендинг не приносит результатов косметологам и указать на эти ошибки.
3. Решение: подробно описываем совершаемые действия, сложности и победы на пути к результату.
Напоминаю: это бесплатная консультация.
Для решения всех задач понадобится: безбашенность, стальные нервы и справка о тяжёлых проблемах с головой. Либо высокий чек. По разговору и рвению верстать сайты самим, я понял, что они скорее деньги сожрут, чем маркетологу заплатят. Поэтому указал на их ошибки, которые заметны без углубления в бизнес.
Нечитаемый текст из-за фона с поцелуями. Выглядит рыночно. Дизайн менять полностью.
С таким текстом, кто хотел губы накачать, скорее в церковь пойдёт. Нужен новый текст, под каждую услугу отдельно.
Лендинг не предназначен для продажи нескольких услуг на одном сайте. В их случае нужен либо один полноценный сайт, либо 9 лендингов под каждую услугу. Следовательно, реклама на каждую услугу настраивается отдельно.
Выложить примеры работ и отзывы. На удивление работы у них были.
Я им объяснил, в маркетинге есть такое понимание, как лестница Бена Ханта. Это на какой ступени осознания к покупке находиться ваш потенциальный клиент. Ступеней 5.
1. Нет проблем – не предаёт значение проблеме (всё ок)
2. Есть проблема – знает о потребности, но не знает решения (не нравятся губы, а как исправить не знает)
3. Есть варианты решения – некоторых решений, но неконкретно о продукте (нашла несколько вариантов)
4. Выбор – выбирает между продуктами решающие задачу (ботокс или… )
5. Покупка – выбирает между поставщиками решающие их задачу (девушка поняла, что будет вкалывать ботокс, вопрос в какой клинике)
Лендинг – это последняя ступень. До неё клиента ведут. В России начинают, как правило, от трений ступени. До третий сами доходят. Третья ступень это может быть блог в социальной сети. В нём должно публиковаться, всё о косметологии.
Кто с третьей ступени доведёт до пятой, тот и получит клиента. Один лендинг ничего не решит, здесь нужен рабочий механизм.
Советы, которые я им дал:
Не вести рекламу сразу на лендинг.
Сделать уклон на соцсети.
Побольше выкладывать работ до/после.
Найти маркетолога, имеющего кейсы в косметологии и, нанять на полноценный проект, ибо в краткосрок маркетинг изучить не получиться.
В их реалиях это больше, чем я мог помочь. За консультацию невозможно исправить все эти проблемы, как бы мне не хотелось.
4. Результат: описываем, что из этого вышло
Они закрылись, теперь продают сим-карты на маркетплейсах. Конец…
Вывод: прежде чем открывать бизнес, разберите каждую мелочь, вариации событий, финансовый потенциал. Уже потом идите и бейте в нужную точку.
Бог в мелочахИоганн Вольфганг фон Гёте
Это вымышленная история, дурацкий пример. В идеале, после вашего «решения» описываем «успешный результат».
Пишите длинные и короткие кейсы исходя из площадки:
Кейс-статья подразумевает в себе подробности.
Посты для социальных сетей, коротко, но при этом содержательно
Как писать кейсы для социальных сетей
Случай:Лендинг в ниши косметологии не приводит клиентов.
Задача:Указать на ошибки.
Решение:Было предложено:
изменить дизайн, так как прошлый не даёт сконцентрироваться на сайте и усложняет процесс чтения текста.
текст не отвечает на вопросы целевой аудитории, не попадает в их боли. Заменить
лендинг не предназначен для продажи нескольких услуг одновременно
выложить больше отзывов и примеров работ
Результат:Они закрылись.
Визуализация в кейсе
Чтобы кейс легче усваивался нужны визуальные примеры. Визуальная информация обрабатывается мозгом гораздо быстрее и легче, чем текстовая. Об этом говорит как минимум два научных исследования:
Проведено в 2006 году в Университете Южной Калифорнии. Исследователи обнаружили, что люди распознают изображения за 13 миллисекунд, в то время как для распознавания текста требуется от 25 до 30 миллисекунд.
Проведено в 2012 году в Университете Небраски-Линкольна. Исследователи сформировали две группы. Одним показывали изображения, другим описание изображения. Группе показывающим изображение, отвечали правильнее на вопросы.
Когда нельзя отказаться от визуальных примеров.
Когда говорится о сложных идеях или технологиях.
Когда вы хотите показать результаты кампании.
Когда вы хотите привлечь внимание и удержать интерес читателя.
Визуальные примеры сделают кейс более привлекательным для чтения.
Примеры визуализации.
Иллюстрации — для объяснения сложных концепций или для создания привлекательного внешнего вида кейса.
Графики и диаграммы — помогают наглядно представить результаты кампании.
Фотографии — для показа продуктов или услуг.
Видео — для создания увлекательного кейса.
Визуальные примеры помогают сделать кейс более убедительным.
Заголовок в кейсе
Заголовок пишется в последнюю очередь, так проще сформулировать. При замене заголовка официальный рекорд поставил Джон Кейплз, он повысил конверсию в 19.5 раз. Заголовок читают минимум в 5 раз чащи основного текста, поэтому делаем его вовлекающим. В 2023 году пользуются успехом заголовки, которые показывают конкретную выгоду.
Выгода:как я помог бизнесу закрыться и не трепать себе нервы за 1 час.
Я повторю, это шуточный пример.
Ещё популярны заголовки по Формуле «4U»… Придумал её Дэвид Огилви, его зовут отцом рекламы. Связано это с 4 атрибутами, которые используются в одном заголовке. Польза, прицельность, срочность и уникальность. Об этой формуле я писал здесь.
Где размещать кейсы
VC. RU – популярная площадка про бизнес.
Пользуется популярностью среди бизнеса и маркетологов. Аудитория любит тематику «Личный опыт». Популярные тематики: «Маркетинг», «Финансы», в меньшей степени «Дизайн» и «Сервисы».
Чем больше статья набирает просмотров и реакций, тем выше шанс появиться в разделе «Популярное».
Можно нативно рекламировать свои «Личные блоги»
Сидит осознанная аудитория. Готовьтесь к уместной и неуместной критике.
Знаю случаи, когда после выхода первой статьи приходили новые клиенты
19.4 млн посещаемость за Октябрь 2023 года по версии Similarweb. Средняя продолжительность визита 1.54 минут.
Зарегистрированы такие гиганты как: Тинькофф, Ozon, Avito, Skillbox, Vk и др.
Все социальные сети, где ведёте блог. ВК, тенчат, телеграм и др.
Главные мысли из статьи
Кейсы — основной контент для любого бизнеса
Состоит из: Случая, Задачи, Решения, Результата. Описываем каждую деталь, читатель должен представить себя на месте вашего клиента
Пишем короткие кейсы для соцсетей со ссылкой на подробную статью
Визуальные примеры помогают сделать кейс более убедительным.
Спасибо за прочтение. Мой Телеграм-канал, подписывайтесь и вы не пропустите мои следующие статьи. Там узнаешь о рекламе товаров и услуг в интернете. Личный опыт, советы, экспертность.
Всем привет! На связи Яна, владелец маркетингового агентства Daniker Consult. Сегодня я рассказываю, как получить 130 заявок из ВКонтакте для строительной компании.
Больше интересного на моем телеграм канале Честно про маркетинг. Там ничего лишнего, в основном фишки продвижения на примере реальных кейсов.
Над проектом работает таргетолог Лилия.
С чего все началось:
Клиент занимается строительством каркасных домов в Нижнем Новгороде, наше сотрудничество началось с Авито, далее приняли решение масштабироваться и охватить ЦА ВКонтакте.
Что было сделано:
Для рекламы строительства каркасных домов была выбрана стратегия "продажа в лоб" через тест-опрос. В рекламном объявлении предлагается оставлять заявку на предварительный расчет стоимости услуг.
Заявки принимаются с помощью бота Senler. На сервис были поставлены ютм метки, в рекламном кабинете настроен пиксель.
Для рекламы использовались следующие аудитории:
активная аудитория конкурентов, которые тоже привлекают трафик в ВКонтакте. Данная аудитория была собрана с помощью специальных программ парсинга.
аудитория, собранная по ключевым запросам. Ключевые запросы анализировались по спросу. Были собраны узкие и относительные ключи.
в ходе рекламы собраны аудитории из тех, кто негативно и позитивно отзывались на рекламу; просмотрели запись; написали сообщение; аудитория пикселя.
‼ Важный момент в работе с аудиторией - это исключение из показов контактов конкурентов.
В ходе рекламной кампании было протестировано 10 рекламных объявлений разного формата. Самую высокую кликабельность показал макет в формате "универсальная запись" с перечислением всех услуг компании.
Важно создавать много объявлений на каждую аудиторию. Мы обычно создаем несколько разных креативов и постепенно выключаем те, что не работают.
Самую высокую результативность показали "связки":
аудитория, собранная по узким ключам + рекламный макет в формате "универсальная запись";
активные подписчики конкурентов+рекламный макет в формате "универсальная запись";
аудитория, собранная по узким ключам + рекламный макет в формате "история/клипы".
Результаты:
За месяц потрачено рекламного бюджета 22837 руб.и этом получено: