Как устроена реклама ВКонтакте

Публикуем ещё один лонгрид с прошедшего митапа VK Tech Talks в Новосибирске. Разработчик Илья Пеняев рассказывает о том, как устроена реклама «ВКонтакте».

Как устроена реклама ВКонтакте, image #1

Короткое вступление

«ВКонтакте» — это очень большой проект. Его ежемесячная аудитория составляет 100 миллионов пользователей. Соцсеть посещают через web, мобильную версию (m.vk.com) и api (как с официальных клиентов, так и через сторонние).

Как устроена реклама ВКонтакте, image #2

С чего всё начиналось?

Как и все большие проекты, «ВКонтакте» требует затрат. И появилась необходимость в монетизации.

Как устроена реклама ВКонтакте, image #3

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

Как устроена реклама ВКонтакте, image #4

Позже была запущена платформа для разработчиков. Появилось большое количество приложений, в том числе и игр. И была введена возможность заработка для разработчиков: пользователи за реальные деньги покупали виртуальную валюту (голоса), платили голосами за какие-то «плюшки» в игре, разработчики получали голоса и выводили их как реальную валюту. Заработок заключался в том, что пользователи покупали 1 голос за 7 рублей, а разработчики выводили 1 голос за 3,5 рубля.

Как устроена реклама ВКонтакте, image #5

Ну и конечно же стикеры:

Как устроена реклама ВКонтакте, image #6

Реклама ВКонтакте

Основным способом монетизации является реклама «ВКонтакте». Вначале была введена таргетированная реклама в виде текстово-графического блока (ТГБ) под левым меню.

Как устроена реклама ВКонтакте, image #7

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

Как устроена реклама ВКонтакте, image #8

Во всём рекламном процессе есть 3 участника:

  • пользователи, для которых стараются показать наиболее подходящую качественную рекламу,
  • рекламодатели,
  • «ВКонтакте».

Десятки миллионов объявлений создано за время запуска рекламной платформы. Запущены сотни тысяч объявлений. Десятки тысяч показов происходят в секунду. В сутки с рекламы поступают десятки миллионов рублей.

Как это работает

Пользователь приходит с запросов в VK, попадает на сервер, на котором работает kPHP. kPHP — это PHP-код, который был транслирован в плюсовый код, затем скомпилирован, был получен большой бинарник, который был деплоен на сервера. Каждый из этих серверов может обращаться к движкам (например, lists, memcached, targ). На каждом сервере есть rpc-proxy.

Как устроена реклама ВКонтакте, image #9

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

Также есть frontend, которые представляют собой отдельные сервера, раздающие статику.

Как устроена реклама ВКонтакте, image #10

Так примерно выглядит работа «ВКонтакте» внутри.

«Снаружи» у рекламодателя есть специальный рекламный интерфейс, где он может создать пост, наполнить его контентом и задать настройки таргетирования.

Как устроена реклама ВКонтакте, image #11

Рекламный интерфейс написан на JS. Когда был написан данный код, там была реализована концепция, похожая на реактивное программирование, задолго до появления React.

Рекламное объявление с точки зрения кода выглядит так:

Как устроена реклама ВКонтакте, image #12

Почему MySQL? Так сложилось исторически. Работает — лучше не трогать.

Как устроена реклама ВКонтакте, image #13

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

Как устроена реклама ВКонтакте, image #14

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

Узкоспециализированный рекламный движок targ знает всё про всех пользователей (например, возраст, пол, место жительства). Он находит пользователей под заданные критерии. Для каждого пользователя свой набор объявлений.

Как устроена реклама ВКонтакте, image #15

Как выглядит показ рекламы:

Как устроена реклама ВКонтакте, image #16

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

Но есть нюанс. Есть понятия CPM (оплата за показы), CRC (оплата за клики), CTR (отношение числа кликов к числу показов). Сложность заключается в том, что невозможно сравнивать CPM с CRC, так как они находятся в разных системах координат. В таком случае применяется следующий подход: берётся CTR (вероятность клика), и рассчитывается ожидаемый CPM.

Как устроена реклама ВКонтакте, image #17

Ранжирование по ожидаемой прибыли является не единственным критерием ранжирования.

Как устроена реклама ВКонтакте, image #18

После принятия решения, какое объявление показать, возвращается рендерное объявление. Это либо HTML (десктоп или лента новостей), либо JSON (клиент).

Для снижения нагрузки используется фича «Плавный запуск» — объявление запускается не для всех пользователей, это делается постепенно. Срабатывает и то, когда браузер пользователя встречает картинку первый раз, скачивает её и кладёт в свой локальный кэш, и когда он ещё раз видит эту картинку, он её не скачивает, так как она есть у него в кэше, и это снижает нагрузку на инфраструктуру.

После показа объявления важно посчитать статистику.

Как устроена реклама ВКонтакте, image #19

Рекламодатель находит пользователя разными способами, среди которых есть:

  • Ретаргетинг, работает следующим образом: на сайте рекламодателя установлен пиксель (ссылка на прозрачную гифку), который находится на серверах «ВКонтакте», браузер пользователя запрашивает эту гифку, и на сервере идентифицируется пользователь и запоминается информация о посещении сайта. Также есть фича, которая определяет, с какой страницы пришёл запрос, что позволяет рекламодателю накапливать группы пользователей по интересам и таргетировать объявления по ним.
  • Динамический ретаргетинг, который позволяет показывать объявления с товарами, которые пользователь просматривал, но не совершил активное действие.
  • Look alike — искусственный интеллект, который находит аудиторию, похожую на ту, которая уже лояльна к рекламодателю.
  • Активности в сообществах.

Команда рекламы «ВКонтакте»

Как устроена реклама ВКонтакте, image #20

Вот и всё!

Посмотреть полную презентацию можно здесь:

The Brown Room
независимое интернет-издание о социальных сетях и современных технологиях

Автор: Лена Гамель
Редактор: Арсений Метелев

2353 views·22 shares