Кейс по Мультиканальной атрибуции на основе цепей Маркова

Решил реализовать модель атрибуции на основе цепей Маркова с использованием стандартных возможностей систем аналитики: Google Analytics и Яндекс Метрики. Этот кейс будет полезен тем, кому интересно покопаться в данных, но на BigQuery денег не дают и внедрять не хотят.

Задача

1. Реализовать вероятностную модель атрибуции на основе цепей Маркова
2. Сравнить полученные значения со стандартной моделью атрибуции по последнему клику
3. Проанализировать пути пользователей и сделать выводы на основе анализа

Реализация

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

Нельзя просто взять и выгрузить из Google Analytics пути пользователей без конверсий

Что бы собрать такую информацию, нужно начать передавать в GA все возможные атрибуты сессии (clientID, источник перехода и т.д…). Реализовать это можно через JS-переменную, в которую будет собираться вся необходимая информация и улетать на сервера Гугла. Т.е. сначала мы все это должны настроить, потом собрать статистику и только потом строить разные модельки.

К счастью есть Logs API Метрики, из которой можно стащить сырые данные и делать с ними, что хочешь. Как выгружать данные с Logs API, подробно написано тут. Я не буду на этом останавливаться. Скажу, что на этом этапе нужно будет сформировать список каналов (источников, кампаний, чего-угодно…) которые в дальнейшем будем анализировать. В текущем примере мой список каналов выглядит так: google_search, yandex_search, other_search, google_cpc, yandex_cpc, social, referral, direct, internal.
Последние два (кстати internal -это внутренние переходы, кто не знал) будут удалены в процессе работы скрипта, но пока на этапе сбора данных они нужны. Кстати, формирование списка было второй проблемой – очень хочется взять и все сразу проанализировать до мельчайших деталей. Но к сожалению, так не получится, поэтому приходится нещадно объединять различные соц сетив в social, опять же платный трафик соц сетей тоже в social… Органическая выдача mail.ru? Да кому она нужна, пусть в other_search побудет, пока!

Результатом всех манипуляций с Logs API должен стать вот такой вот датасет:

Датасет для анализа custom_id – это clientID

date – даты визитов (!)

channel – придуманный список каналов. Тут придется повозиться с данными, в Метрике они организованы разными столбцами и придется все сгруппировать в один. Зато получится то что хочешь получить, например канал organic можно разбить на несколько, хоть до уровня duckduckgo – если задача анализировать и растить трафик с этого поисковика)

conversion – это синтетический показатель, принимающий значения: 0/1. Вывел я его очень просто из показателя GoalID, всем нужным мне целям присвоил – 1, остальные вместе с пустотой получили ноль.

Когда датасет готов, самое время перейти к программированию на R. В этой статье выложен R-код с разъяснениями что и почему. Я не буду подробно останавливаться и перейду сразу к результатам работы скрипта. Но сначала немного о проекте, ставшим донором данных. Это образовательный проект с множеством курсов и в рамках конверсии было задано достижение одной из двух целей – факт отправленного вопроса по форме “Задать вопрос”, факт отправленной заявки по форме “Отправить заявку”.

Анализ и Выводы

Для начала смотрим на сравнительную таблицу атрибуции по последнему клику (не прямому) и атрибуции на основе цепей Маркова. Кто не читал теорию – суть атрибуции на основе цепей в том, что из всех пользовательских путей поочередно удаляется один из каналов, обрывая пути к конверсиям, которые произошли при участии канала. Дальше оценивается отношение исчезнувших конверсий к общему количеству и распределяются веса для каждого канала с учетом вероятности получения конверсии. Немного запутанно, но вкратце – так. Сравнение:

Сравнение моделей атрибуции

Что тут можно увидеть? Да особо ничего, ну немножко google_search переоценен, немного yandex_cpc недооценен по сравнению с ласт кликом. Толку мало, CPA почти не изменится. И вроде как смысла заморачиваться с этими всякими скриптами и логами нету. Вот будет биг дата…Ну ок, в любом случае альтернативная модель не помешает, а если она показывает примерно тоже, что и другие модели – даже лучше, значит истина где-то рядом.

Истина где-то рядом

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

Customer Journey Map

Customer Journey Map
Вот такая красивая штука получается в результате работы скрипта. Ничего не понятно? Будем разбираться. Это вероятностная модель путей пользователей – цифрами указаны вероятности перехода из точки А в точку Б и в конечном итоге путь либо конвертируется – достигает (conversion), либо уходит в небытье(null). Нечто подобное есть в Google Analytics для анализа путей пользователя по сайту и воронке – тут такое тоже можно создать, если вместо каналов создать датасет с пройденными страницами, получится нагляднее и с процентиками. И интерактивно, дальше увидите – буду трансформировать картинку.

А пока в данной визуализации видно, что 44% трафика на сайт приходит с Google Search, 12-18% с контекстной рекламы и органики Яндекса, 7% с соц сетей – маловато…Выводы? Ну я вижу точку роста по органике Яндекса, кажется, что есть куда сильно расти. Тут же хорошо виден процент ухода в небытье с каждого канала: органика и контекст гугла лидеры по проценту выходов без конверсий, а вот с соц сетей и контекста Яндекса пользователи на 5% реже расстаются с сайтом без конверсий. Вывод? Сеточки бы прокачать, может в Яндексе усилиться. Покопаться внутри трафика с Гугла (что за ЦА по сравнению с Яндексом ходит по сайту, с каких устройств…)

Анализ канала трафика

Трансформируем карту и попробуем проанализировать канал соц сетей, то что на сайт с них приходит 7% мы уже знаем. Знаем, что пользователи из соц сетей реже остальных пропадают с экранов наших аналитических радаров. 91% конечно же все-равно сваливает, но 9% где-то бродят…Так вот эти 9% в почти 10 раз чаще возвращаются на сайт с органической выдачи, чем с контекстной рекламы. Понятно, что в принципе трафика с органики больше: ~60% от всего трафика, но и с контекста на сайт приходит ~ 30%. В чем же дело? Ну дело то в новых и вернувшихся пользователях, значит контекст привлекает больше новых. Возможно стоит подумать, как контекстом вернуть ушедших, но побывавших в соц сетях. И еще, пользователи соц сетей ничего не знают про поисковик duckduckgo (нет взаимодействий между social и other_search) – эх…

И напоследок анализ конверсии с каналов:

Анализ конверсии

А тут сюрприз! Самая высокая конверсия с остальных поисковиков – other_search (привет, duckduckgo), соц сетей и Яндекс поиска. Выводы? Смотрим, что за поисковики такие хорошо конвертят, расширяем с них трафик. Про соц сети и органику Яндекса уже было – надо расти.

А вообще – все эти модельки – первый шаг к Machine Learning. Загружаем вероятностную модель в умный алгоритм и пусть он нам расскажет что, куда, зачем и почему)

Добавить комментарий

Ваш e-mail не будет опубликован.