Узнайте, как получить данные в правильном формате. Часть 2 из 3 из серии о маркетинговой атрибуции.

Как объяснялось ранее, маркетинговая атрибуция направлена ​​на присвоение кредита для покупки маркетинговым каналам (рекламные объявления, рассылки по электронной почте и т. Д.), С которыми пользователь взаимодействовал до совершения покупки. В конечном итоге это может позволить маркетологам лучше распределять свои бюджеты между различными маркетинговыми каналами, чтобы повысить продажи и повысить рентабельность инвестиций.

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

Отслеживайте своих клиентов

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

Обычно это делается с помощью файлов cookie. Файл cookie - это фрагмент текста, отправляемый в ваш браузер с посещаемых вами веб-сайтов, который затем сохраняется на вашем устройстве. Файлы cookie позволяют веб-сайтам идентифицировать вас, когда вы вернетесь. Таким образом, все страницы, которые вы посещаете на веб-сайте, можно будет отследить до вас. Однако для целей маркетинговой атрибуции этого недостаточно. Действительно, необходимо идентифицировать действия, предпринятые определенным пользователем на веб-сайте (покупка, добавление товара в корзину и т. Д.), Но также определить путь, по которому пользователь попал на веб-сайт, также известный как реферер (например, нажали ли они на рекламную ссылку в Google или открыли электронное письмо?)

Большинство инструментов, которые предлагают решения для отслеживания исходного трафика (Google Analytics, MixPanel, Heap и т. Д.), Используют простую технику под названием Параметры UTM . Параметры UTM - это теги, которые добавляются к URL перехода на веб-сайте рекламодателя. Когда пользователь нажимает на объявление (и перенаправляется на веб-сайт продавца), соответствующая информация (идентификатор объявления, кампания, к которой оно относится и т. Д.) Отправляется в систему отслеживания. Вот пример URL с параметрами UTM:

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

Сеанс:

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

  1. Чтобы построить эти путешествия, нам нужна точная карта навигационного поведения каждого клиента. Вот тут-то и вступает в игру сеансизация. Сеанс клиента - это период времени, в течение которого клиент остается активным на веб-сайте, полезный показатель активности клиентов. Так, если вы, например, просматриваете каталог продуктов на Amazon и сделали 10-минутный перерыв, чтобы вернуться позже, этот опыт будет считаться двумя отдельными сеансами, разделенными 10-минутным интервалом. Рассмотрим следующий пример, в котором каждая страница веб-сайта, которую посещает конкретный пользователь, представлена ​​синими точками, упорядоченными по времени:

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

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

2. Мы хотим реконструировать путь клиента, и для этого нам нужны только точки взаимодействия, на которые ссылаются извне веб-сайта. Почему? Потому что это будут ссылки на рекламу, которую мы размещаем на сайтах рекламодателей. Давайте попробуем представить себе типичный путь к покупке. Первая точка взаимодействия - это когда клиент нажимает на рекламу в Twitter, которая перенаправляет его на веб-сайт. Затем пользователь перемещается по каталогу продуктов, который создает дополнительные точки соприкосновения. Нам они не нужны в контексте анализа атрибуции, поэтому от них можно отказаться. Цель состоит в том, чтобы сохранить только первую точку взаимодействия каждого микросеанса, как показано ниже:

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

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

Как мы могли различить эти макросеансы? Например: если преобразование произошло в момент времени T, какие точки соприкосновения приводят к этому событию, которое мы можем разумно рассматривать как часть этого конкретного макросеанса? Следует ли рассматривать клик по объявлению, который произошел за год до покупки, как часть пути к покупке? Опять же, этот временной параметр имеет решающее значение и должен определяться с учетом конкретных потребностей бизнеса. В следующем примере назовем этот параметр T_window (в Google Analytics по умолчанию установлено значение 30 дней).

Значение T_window определяет, сколько точек соприкосновения до покупки мы должны учитывать для текущего макросеанса, и, следовательно, определяет предел этого макросеанса.

Важно отметить, что макросеанс не обязательно заканчивается преобразованием: макросеанс 2, например, , не приводит к преобразованию, поскольку время между последней точкой взаимодействия этого сеанса и следующей больше, чем T_window. Это ключевое различие между эвристической и алгоритмической моделями (если вы хотите узнать больше об этих моделях и еще не прочитали первую запись в блоге, загляните сюда).

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

Давайте поговорим о технических

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

Шаг 1. Реконструкция микросессии

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

log_data : user_id | точка соприкосновения | отметка времени

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

Примеры:

user_12FG4 | shopping_cart_page | 12–09–2017 14:45:06

user_76DF5 | Facebook Ad | 09–12–2017 09:55:36

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

log_data_sessions: user_id | user_micro_session | точка соприкосновения | отметка времени

где user_micro_session - уникальный идентификатор микросеанса каждого пользователя.

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

Следующим шагом является сравнение каждого значения столбца time_difference со значением T_window, которое в этом примере мы определим как 30 минут. Мы собираемся пометить случаи, когда значение time_difference больше, чем T_window, с помощью флага 1, присвоив всем остальным случаям значение 0. Давайте построим предыдущий код:

Давайте теперь создадим новый session_id для клиента, каждый раз, когда столбец new_micro_session равен 1. Одно из возможных решений для этого - объединить user_id значение с кумулятивной суммой столбца new_micro_session.

Важной частью здесь является сохранение только первой точки соприкосновения с каждым микросеансом клиента, как объяснялось ранее:

Вот и все! Это сократит все взаимодействия с клиентами на несколько микросеансов. Нам все еще нужно создать макросеансы, что относительно похоже на то, что мы сделали здесь; код для этой части находится в Приложении.

Ограничения

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

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

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

Заключение

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

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

Приложение: Реконструкция макросессии

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

user_touchpoints: user_id | канал | отметка времени

и цель - создать следующую таблицу:

user_macro_sessions: user_id | user_macro_session | канал | отметка времени | преобразование

где user_macro_session - уникальный идентификатор макросеанса каждого пользователя. Для этого нам также понадобится таблица конверсий / покупок:

конверсии: user_id | convert_timestamp

Каждая запись в этой таблице соответствует покупке, совершенной клиентом user_id в момент времени timestamp.

Сначала мы собираемся выполнить левое соединение конверсий с user_touchpoints идентификатора клиента. Поскольку каждое событие конверсии будет определять уникальный макросеанс, мы также создадим новый столбец user_macro_session, объединив user_id и метка времени_конверсии.

Затем нам нужно отфильтровать в каждом макросеансе точки взаимодействия, которые произошли после преобразования, а также точки взаимодействия, которые произошли до преобразования со временем, превышающим T_window = 30 дней.

Назовем эту промежуточную таблицу промежуточной_таблицей. Нам нужно извлечь из этой таблицы два типа макросеансов:

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

А теперь последний трюк. Мы собираемся использовать этот флаг для создания столбца user_macro_session.

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