{"id":14270,"url":"\/distributions\/14270\/click?bit=1&hash=a51bb85a950ab21cdf691932d23b81e76bd428323f3fda8d1e62b0843a9e5699","title":"\u041b\u044b\u0436\u0438, \u043c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0410\u043b\u044c\u0444\u0430-\u0411\u0430\u043d\u043a \u2014 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u0435","buttonText":"\u041d\u0430 \u043a\u0430\u043a\u043e\u0439?","imageUuid":"f84aced9-2f9d-5a50-9157-8e37d6ce1060"}

Как Python и искусственный интеллект обеспечили бесплатным ресторанным питанием

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

Елена Малыгина, CEO advertof.net

Вначале расскажем небольшую историю oт Chris Buetti, программисте из Нью-Йорка. Он любит вкусно поесть в лучших ресторанах города, но считает такие расходы обременительными для своего кошелька. Техническое решение было найдено, и с тех пор он бесплатно обедает в элитных ресторанах Нью-Йорка. Чтобы воспользоваться идеей, понадобятся некоторые технические знания, которые Крис описал в своей статье на medium.com или набор микро сервисов, рассказ о функционале которых вы найдете в конце статьи и на нашем маркетплейсе рекламных технологий.

100% автоматизация работы с Instagram

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

Крис создал страницу в Instagram с красочными фото Нью-Йорка. Страница собрала более 25 000 подписчиков в Нью-Йорке и продолжает быстрый рост.

Крис обращается к ресторанам в этом районе через прямую переписку в Instagram или по электронной почте и предлагает опубликовать обзор заведения от подписчиков в обмен на бартер. Почти каждое письмо в ресторан приносило автору или оплаченный обед или подарочную карту. А для ресторана реклама возвращалась новыми клиентами.

Весь процесс на 100% автоматизирован. Скрипт находит изображения или видео, создает посты, добавляет хэштеги, ссылки на первоисточник, отсеивает ненужное, публикует отобранное, подписывается на пользователей и отменяет подписку, ставит лайки, отслеживает почтовый ящик и многое другое. Что немаловажно – автоматизированы как посты по расписанию, так и e-mail’ы ресторанам с рекламными предложениями. С момента создания Крис даже не входил в учетную запись. По сути, все делает робот, который действует как человек, но обычный пользователь не заметит разницы.

Технология создания контента для социальных сетей

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

Создание контента для Instagram

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

Ежедневная публикация нескольких постов обязательна. Хотите понравиться алгоритмам Instagram, чтобы чаще попадать в «рекомендованное», следуйте этому правилу. Публикация сообщений каждый день однообразна и утомительна для исполнителя-человека. Большинство отказывается от этой задачи через несколько недель, а пропуск дня или двух может нанести вред. Так что автоматизация в этом деле – «must have».

Сбор библиотеки фото и видео

Крис собрал список из пятидесяти аккаунтов в Instagram, в которых размещены качественные фотографии Нью-Йорка. Затем настроил парсер для загрузки медиафайлов из этих учетных записей. В дополнение к ним загрузил метаданные: текст под фото, дата публикации, количество лайков и шеров, местоположение. Парсер настраивается на запуск каждое утро в 3 часа ночи или когда доступные фото иссякли. Так решилась проблема с контентом.

Автоматическое определение «хороший» или «плохой» контент

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

Чистильщик, часть 1 - жестко заданные правила

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

Первый шаг заключался в анализе ссылок. Если текст включал в себя рекламные ссылки, например, «купите сейчас» или что-то подобное, пост немедленно удалялся.

Дальше проверялось наличие комментариев. Отключение комментариев говорило о рисковом содержании и от такого контента проще было отказаться.

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

Чистильщик, часть 2 - модель машинного обучения

В очищенном репозитории неважный контент еще встречался, а публиковать а хотелось только то, что получит максимум лайков.

Как выделить такие посты? По количеству лайков? Но у раскрученных аккаунтов лайков само собой больше, чем у малоизвестных. По соотношению количества лайков к количеству подписчиков? Но такая корреляция тоже срабатывала не всегда. С решением задачи помог искусственный интеллект.

Прежде чем даже взглянуть на какие-либо метаданные, Крис вручную просматривал большое количество фотографий и помечал их маркерами: 0 (плохо) или 1 (хорошо). Субъективно? Возможно. Однако, как правило, есть единодушие, какой контент плох, а какой - привлекателен.

Таким образом, был создан сет данных: с оценками хорошо/плохо и метаданными по количеству просмотров, лайков, комментариев, упоминаний, времени публикации.

К этим переменным были добавлены еще и показатели. Например, количество комментариев и лайков бралось в соотношении к количеству подписчиков. Заголовки были лемматизированы. Лемматизация - это процесс приведения словоформы к лемме — её нормальной (словарной) форме. После такого преобразования текст можно проанализировать математически. После того, как все было сделано, стали доступны итоговые данные:

  • Рейтинг поста (0/1)
  • Лемматизированный текст заголовка
  • Количество лайков
  • Количество упоминаний
  • Хэштеги
  • Длина заголовка
  • Коэффициент просмотров / количество дней с момента публикации
  • Соотношение лайков / количество дней с момента публикации
  • Соотношение комментариев / количество дней с момента публикации

Тестировались различные модели классификации, но лучше других сработала модель базовой логистической регрессии. По 2 причинам. Первая - логистическая регрессия показала наилучшие результаты на тестовом наборе. Вторая - модель позволяла устанавливать пороговую оценку. Т.е. вместо логических да/нет (хорошо/плохо) приемлемость выбора можно определять десятичным числом со знаками после запятой, например, от 0,01 до 0,99. Избыточность данных позволила установить порог на 0,9, чтобы отклонять все, что ниже этого эталона. Таким образом были выбраны лучшие из лучших посты/фото/видео.

Заголовки, ссылки на первоисточник, хештеги

Система автоматического сбора релевантного контента и удаления всевозможного хлама создана. Но это еще не финал.

Пользователи Instagram в курсе, что у каждого поста есть подпись под изображением или видео. Но как описать картинку, которую не видишь? Понадобится универсальный шаблон. Выглядит это примерно так: Заголовок {Headliner}/Источник: {Resource}/Хэштеги{HASHTAG1 HASHTAG2 ... HASHTAG30}, где три набора {} должны быть заполнены скриптом. Давайте рассмотрим каждые три по отдельности.

Заголовок

Был создан текстовый файл с несколькими предопределенными типичными подписями, которые могут сочетаться с любым изображением. Это были либо цитаты о Нью-Йорке, либо общие вопросы, либо просто оценочные суждения. Вот примеры: «Кто может назвать это место?», «Расскажите нам о своем любимом баре в Нью-Йорке в комментариях!», «Ты не жил, пока не умер в Нью-Йорке».

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

Ссылка на первоисточник

Одна из самых сложных задач - автоматическое указание источника. Потому что страница Instagram, с которой пришли, не обязательно была тем аккаунтом, на который стоит ссылаться. Часто это был перепост с другой учетной записи. А в идеале было бы здорово, чтобы ссылка на источник выглядела примерно так. Источник: @ likenewyorkcity / @ geoffrey.parry

Первая часть проста; просто вводим, с какой учетной записи пост пришел. Вторая часть была немного сложнее. Пришлось воспользоваться REGEX (регулярными выражениями), чтобы найти все источники. Но оно того стоило. Много раз люди комментировали фотографии на странице и говорили «спасибо, что поделились!».

Хештеги

Instagram позволяет добавить 30 хэштегов к изображению, которые затем будут отображаться в ленте этого хэштега. Был создан файл с более чем 100 связанными хештегами:

NYC #NY #NewYorkCity ... #ThePlaza #NYCInstagram #NYYankees

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

Окончательный шаблон

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

Автопубликация контента

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

Итак, сценарий Python рандомно захватывает одно из подготовленных изображений и автоматически создает все необходимые атрибуты. Публикация выполняется через API по расписанию. Сron-job отрабатывает в 8:00, 14:00 и 19:30 каждый день.

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

Наращивание подписной базы

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

Итак, сценарий взаимодействия работает с 10:00 до 19:00 по NY time zone, временного диапазона, в который Instagram был наиболее активен. В течение дня учетная запись методично подписывается и лайкает пользователей и фотографии, в расчете на взаимность.

Массфолловинг (еще больше о науке данных)

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

Проблема здесь в том, что вы не можете просто так подписываться на всех подряд. В Instagram есть лимит: вы не можете подписаться более чем на 7500 пользователей одновременно, иначе существует риск бана. Но тесты показали, что можно за день зафолловить 400 аккаунтов и отписаться тоже от 400. Только как с высокой долей вероятности спрогнозировать, кто из тех, на кого вы подписались, в ответ подпишется на вас?

Пришлось создавать очередной дата сет. Было выбрано 20+ более крупных аккаунтов в целевой нише. И началась работа: фолловинг подписчиков, лайкеров и комментаторов этих выбранных 20+ каналов. Метаданные об аккаунтах записывались в файл CSV. Они включали в себя соотношение following /followers, был аккаунт общедоступным или приватным, имел ли изображение в профиле, пол (определялся по имени сторонним пакетом).

Каждый день сценарий просматривал этот CSV-файл и отмечал отклик на подписку. Через пару дней после подписки проставлялись данные: 0 указывал, что пользователь не подписывался в ответ, 1 указывал, что подписывался в ответ, но не взаимодействовал (ставя лайки или комментируя), а 2 указывали, что подписался и взаимодействовал с одним из последних десяти сообщений .

Прежде, чем запустить машинное обучение, закономерности пришлось искать вручную. И вот что обнаружилось.

Лайкеры и комментаторы подписывались в ответ реже, чем подписчики, но с большей вероятностью отвечали интерактивом.

Фолловинг аккаунтов с утра приводило к более высокому уровню отклика, чем по ночам.

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

Женщины подписывались с большей вероятностью, чем мужчины.

Те, кто подписался на большее количество аккаунтов, чем подписано на них (соотношение following/followers в> 1,0), подписывались с большей вероятностью.

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

Отписка

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

Отписаться от людей, на которых подписаны, стоит по двум причинам. Во-первых, нельзя следить за более чем 7 500 людьми одновременно. Во-вторых, желанный для рекламодателя аккаунт – тот, в котором как можно более высокое соотношение followers/following. Это было простой задачей: просто подписываетесь на 400 человек в день, а через два дня от этих же людей отписываетесь.

Лайки

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

Автопродажи

Да, автоматизация рулит. Страница в Instagram сама находит релевантный контент, отсеивает хлам, генерирует посты и публикует их в течение дня. Кроме того, с 7:00 до 22:00 аккаунт расширяет свое присутствие, автоматически добавляя лайки, подписываясь и отписываясь от целевой аудитории, что было дополнительно проработано алгоритмами науки о данных. Приятно, что аккаунт кажется более человечным, чем большинство аккаунтов в той же нише.

В течение пары месяцев можно было наблюдать за ростом аккаунта: число подписчиков увеличивалось от 100 до 500 в день, а еще можно было наслаждаться в ленте красивыми фотографиями любимого города.

Крис жил своей жизнью; работал на работе, гулял с друзьями, смотрел фильмы - и совсем не тратил собственное время на раскрутку страницы. У него был бот, который делал свое дело, пока он занимался своим делом.

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

За основу был взят шаблон.

«Здравствуйте, {ИМЯ АККАУНТА}

Меня зовут Крис, и у меня есть аккаунт в Instagram! У нас более {ЧИСЛО ПОДПИСЧИКОВ} подписчиков в районе Нью-Йорка, и многие из них комментируют мои сообщения или пишут мне о лучших ресторанах, барах и достопримечательностях.

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

Если Вам интересно, дайте знать (через Instagram или E-mail)!

Спасибо!

Крис.»

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

Рабочий скрипт на Python принимает два параметра: начальный хэштег и метку категории. Например, хэштег «Манхэттен» и категорию «ресторан».

Этот скрипт переходит в ленту хэштегов и загружает кучу фотографий. Затем он перебирает посты, пока не найдет тот, на котором пользователи отметили фотографии. Если это так, он входит в теги и проверяет, являются ли они бизнес-страницей. Если это так, он смотрит на категорию. Если в категории есть слово «ресторан», им будет отправлено предложение о сотрудничестве. Напрямую и на e-mail, если ссылка на почтовый ящик есть в профиле. Можно изменить хэштег на #TimesSquare , а категорию, например, на «музей», так что написанный скрипт универсален.

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

Результаты

Результаты лучше, чем можно было представить. Рестораны массово предоставляют подарочные карты и бесплатные обеды в обмен на рекламу в Instagram.

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

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

То же самое с SAAS сервисами Nocode

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

А вот что могут дать SAAS сервисы, если пройтись по описанным выше шагам:

Поиск лучших страниц/групп по ключевым словам с фильтрами по количеству участников;

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

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

Заимствованный пост можно подготовить к печати опять же без ручного труда: нужно только выбрать предустановленные алгоритмы преобразований. Оставлять ссылки на первоисточник или нет, убирать ссылки на другие ресурсы или нет, и т.д. - правила публикаций задаете Вы.

А теперь ищем целевую аудиторию. Поиск и выгрузка аккаунтов по ряду критериев: от нескольких до 1000 (и это не шутка!) в разных социальных сетях, - таких сервисов много.

Массфолловинг, когда бот подписывается и отписывается на выбранные аккаунты, - тоже реализованы и продаются.

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

Так что, как говорится, берите и делайте свою популярность. Но помните, что настоящий бренд – это не столько об охвате и интерактиве, сколько об уникальности и реальных ценностях…

0
6 комментариев
Написать комментарий...
Frolov Konstantin

Хороший пример автоматизации!

Ответить
Развернуть ветку
Elena Malygina
Автор

Спасибо за оценку! А вот интересно, создание таких кастомизированных автоматизированных систем из набора микросервисов (плюс немного программирования) могло бы быть востребованным? 

Ответить
Развернуть ветку
Frolov Konstantin

Думаю, подобные системы точно заинтересовали бы.
Вот только вопрос в стоимости разработки и стоимость поддержки?

Ответить
Развернуть ветку
Elena Malygina
Автор

Уже пришла эта мысль кому-то в голову: buildlab.co. А стоимость может быть и копеечной (и должна быть небольшой по сравнению с заказом у программистов). Как пример: сделали продукт с помощью notion.so + super.so + gumroad.com за несколько часов и получили $100K чистой прибыли за несколько дней. Кейс описан здесь - https://tr.af/6. Но это скорее исключение. Крупноблочное no-code/low-code строительство хотя бы даже MVP – это же не общепринятая практика.

Ответить
Развернуть ветку
Frolov Konstantin

Сложна ))
Надо русских )

Ответить
Развернуть ветку
Макс Лакостов

Начитался и реализовал перепосты в аккаунте за два дня с комментариями, поиском по географии, и прочими лайками. Ну и чо))) 

Ответить
Развернуть ветку
3 комментария
Раскрывать всегда