Контекстная реклама с API классификации текста

Не отслеживать пользователя, отслеживать интересы

В сегодняшней реальности онлайн-рекламы эффективная маркетинговая тактика основана на различных методах отслеживания пользователей, таких как сторонние файлы cookie (и альтернативные хранилища) и снятие отпечатков пальцев с устройств. Но в мире утечек данных, GDPR, CCPA и усиленного законодательства о защите данных, вдохновленного ими, этот подход становится устаревшим. В Safari и Firefox уже есть встроенные решения для уменьшения межсайтового отслеживания. Chrome также работает над альтернативами. Итак, сторонние файлы cookie скоро закончатся. Идентификатор Apple для рекламодателей (IDFA) скоро будет доступен только для приложений с явного согласия пользователя. Исчезновение возможности междоменного отслеживания заставляет рекламодателей вернуться к контекстной рекламе.

В этой статье я покажу вам, как реализовать контекстный таргетинг на основе API классификации текста, предоставляемого NLP Cloud. Описанный здесь подход легко адаптируется к любым рекламным технологиям (например, серверам объявлений, OpenRTB и т. Д.).

«🔔 Хотите больше подобных статей? Подпишите здесь."

Контекстный таргетинг

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

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

Дай мне бирку

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

Первые попытки автоматизировать этот процесс в прошлом приводили к более или менее забавным провалам:

Текстовая классификация статей

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

Рассмотрим пример страницы со статьями на самые разные темы:

Наша цель - сделать так, чтобы в местах размещения рекламы отображались баннеры, тематически связанные с содержанием статьи.

Условия, которым должно соответствовать наше решение:

  1. Подбираем ключевые слова и темы, релевантные рекламной кампании.
  2. Система анализирует содержание отображаемой статьи и распределяет ее по категориям.
  3. Подбираются и размещаются релевантные объявления.

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

API классификации текста

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

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

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

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

С помощью NLP Cloud API вы можете попробовать, какой алгоритм может быть полезен для конкретного бизнес-сценария.

Интегрировать классификацию текста с содержанием веб-сайта

Поскольку серверная часть веб-сайта основана на Python (Flask), мы начнем с написания простого клиента для NLP API:

Полученные результаты:

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

Планируется, что выбор баннеров для показа будет производиться системой показа рекламы (решение будет основываться на оценках индивидуально присвоенных ярлыков). Поэтому, чтобы не раскрывать ключи API и иметь больший контроль над данными, мы напишем простой прокси:

Кампании

Предположим, у нас есть 3 рекламные кампании, которые нужно запустить:

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

Это наш рекламный сервер 🤪

Теперь, используя fetch, мы получим метки для текста статьи, которые мы получаем с помощью ее селектора:

Обратите внимание, что мы показываем клиентское объявление только в том случае, если оценка выше 0,8:

Math.max(…scores) >= 0.8

В противном случае мы проявляем саморекламу.

Это, конечно, произвольное значение, которое при необходимости можно увеличивать и ослаблять.

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

Представление

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

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

Однако решение, основанное на отдельном API, которое мы можем передать любому тексту и получить его метки, дает нам возможность использовать JS-код практически на любой странице почти в реальном времени, даже без доступа к бэкэнду!

Выводы

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

API классификации текста от NLP Cloud, с другой стороны, довольно хорошо справляется с пометкой текстов, поэтому мы могли бы повторить весь процесс, на этот раз не забывая исключать тексты с заданной темой из выдачи баннеров. на них.

использованная литература

Https://nlpcloud.io/nlp-text-classification-api.html
https://support.google.com/google-ads/answer/1726458?hl=ru
Https://adage.com/article/digital/online-advertising-google-s-worst-ads/138567