websitelytics

Menu

Декомпозиция каналов трафика и оценка их эффективности в Data Studio

Опубликовано: 15 июл 2020

Оценка эффективности каналов трафика — одна из первоочередных задач веб-аналитики. Мы можем определить, что визит (сессия) пользователя относится к тому или иному каналу по явным или неявным признакам (utm, source, referrer, другие метки). Т.е. при необходимости мы можем написать некий алгоритм анализа признаков трафика, декомпозиции каналов, и затем проанализировать их эффективность с точки зрения маркетинговых активностей.

Почему такая декомпозиция необходима и в данном случае реализована в Google Data Studio? Любая система аналитики, и Google Analytics не исключение, имеет ограниченный набор стандартных каналов трафика, которые при этом могут не всегда определяться корректно. В GA самый известный пример - это органический трафик с Яндекса, который в значительной части приписывается реферальному источнику, а не органическому.

Да, мы можем настраивать каналы и непосредственно в GA через Custom Chanel Grouping, но в Data Studio это можно сделать прозрачней, гибче и сразу же применить в визуализации отчетов. Нам позволят это сделать функции CASE и REGEXP_MATCH, имеющиеся в Data Studio.

1. Органический трафик

Update 12.09.2020 После публикации материала в Chrome 85-й версии были внесли изменения в плане упрощения реферера в целях безопасности. Это изменение повлияет на алгоритм декомпозиции, с одной стороны сделает его более трудным, с другой более необходимым. Возможно со временем я вернусь к его переработке. Подробнее о влиянии изменений на аналитику органического трафика - Chrome v85 Referrer Changes

Давайте попробуем вначале разобраться, почему же значительная часть органического трафика с Яндекса в GA становится реферальным. Объяснение достаточно тривиальное, согласно документации About organic-search sources GA приписывает источник органическому трафику, если реферер с которого пришел пользователь находится в списке Известных поисковых систем и имеет параметр поискового запроса, представленный в соответствующей таблице. Соответственно, когда после перехода с поиска Яндекса аналитика видит упрощенный реферер - https://yandex.ru/ , она просто не может отделить этот трафик от трафика, скажем, с Яндекс Кью, у которого будет реферер https://yandex.ru/q/question/.../ и который является реферальным.

У многих, как и у меня, наверняка возникнет вопрос, а как отделяет этот поисковый трафик сам Яндекс в отчетах по источникам трафика в Метрике. Допустим вы задали это вопрос поддержке, и получили ответ - через дополнительные куки, идентифицирующие сервисы Яндекса. Хм... а как тогда быть в случае incognito mode, или когда некий браузер удаляет третесторонние или возможно даже все куки ассоциирующуюся с рядом известных платформ в рамках защиты пользователя от кроссайтового отслеживания...? Я к тому, что когда вы видите некое расхождение в данных по поисковому трафику в GA и YM, на это, как мы видим, есть ряд объективных причин.

Для решения проблемы и более корректного выделения органического трафика в GA & DS мы предположим, что переходы на наш сайт с реферером равным https://yandex.ru/, https://yandex.by/ и т. п. (т. е. path = /) практически наверняка является поисковым трафиком. Для подстраховки мы проверим, что URL посадочной страницы не содержит clickId директа. Тогда для органического трафика мы получим следующую формулу:

CASE
WHEN Medium="organic" AND Source="google" THEN "google"
WHEN Medium="referral" AND Source="go.mail.ru" THEN "mail.ru"
WHEN (Medium="referral" AND REGEXP_MATCH(Full Referrer,"(www\\.)?yandex\\.\\w{2,3}\\/?$") 
   AND NOT REGEXP_MATCH(Landing Page,".*yclid=.*"))
   OR (Medium="organic" AND REGEXP_MATCH(Source,"yandex")) THEN "yandex"
WHEN Medium="organic" AND NOT REGEXP_MATCH(Source,"yandex|google|mail\\.ru") THEN Source
END

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

Нужно отметить, что для данных по органическому трафику в Data Studio есть одно важное замечание. График будет отображать цифры для атрибуции "Последний значимый переход", которая используется по умолчанию в GA. В интерфейсе GA вы можете посмотреть на количество переходов с Поиска, применив параметр "Direct Session" (который тоже имеет вопросы к его логике, но все же):


В Data Studio этот параметр в стандартном коннекторе к сожалению на момент написания статьи не доступен. Поэтому если вы хотите получить теже графики, но с атрибуцией "Последний переход" (фактическое количество переходов с Поисковой выдачи), вам потребуется BigQuery.

2. Реферальный трафик

На примере формулы реферального трафика мы сделаем следующие настройки:

Отслеживание переходов с карт может быть особенно актуально для малого бизнеса, магазинов, сервисов и т. п., поэтому мы выделим карты в отдельные источники. Мы можем попытаться определять такие переходы с помощью реферера, так, к примеру, часть переходов с Яндекс карт имеет реферер https://yandex.ru/maps/, но в действительности это не самый надежный способ. Для более точного отслеживания необходимо прописать соответствующие UTM-метки к ссылкам, ведущим на наш сайт с карт. Для Google maps ссылка может быть такой —

https://www.our-site.com/?utm_source=google_maps&utm_medium=referral

Для Яндекс карт соответственно utm_source=yandex_maps.

Предположим, что данные о вашей организации уже есть на картах. Для добавления UTM-меток к ссылкам в Google maps нужно найти вашу организацию, и в информационной панели внизу кликнуть на кнопку Suggest an edit. Затем внести исправления, добавив к ссылке на ваш сайт соответствующие UTM-метки. Для внесения аналогичных изменений на Яндекс картах возможно потребуется обращение через Яндекс Справочник.

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

CASE
WHEN Medium="referral" AND (REGEXP_MATCH(Full Referrer,"(www\\.)?yandex\\.\\w{2,3}\\/maps\\/.*") OR Source="yandex_maps") THEN "Yandex Maps"
WHEN Medium="referral" AND REGEXP_MATCH(Full Referrer,"(www\\.)?yandex\\.\\w{2,3}\\/q\\/question\\/.*") THEN "Yandex Q"
WHEN Medium="referral" AND REGEXP_MATCH(Full Referrer,"(www\\.)?yandex\\.\\w{2,3}\\/collections\\/.*") THEN "Yandex Collections"
WHEN Medium="referral" AND Source="zen.yandex.ru" THEN "Yandex Zen"
WHEN Medium="referral" AND Source="google_maps" THEN "Google Maps"
WHEN Medium="referral" AND NOT REGEXP_MATCH(Source,"((\\w+\\.)?yandex\\.\\w{2,3}|(\\w+\\.)?google\\.\\w{2,3}|(\\w+\\.)?mail.ru|(\\w+\\.)?our-site.com|(\\w+\\.)?vk.com|jira.our-site.com|confluence.our-site.com|(\\w+\\.)?facebook\\.com|(\\w+\\.)?instagram\\.com||(\\w+\\.)?ok\\.ru)") THEN Source
END

3. Ссылочный трафик из социальных сетей

Построение формулы для ссылочного трафика из социальных сетей реализовано по тому же принципу — вначале мы выделяем те источники, которые нам наиболее интересны и затем приплюсовываем все остальные источники. Здесь есть один подводный камень, на который нужно обратить внимание. Параметр Social Source Referral не сочетается с некоторыми параметрами расширенной электронной торговли, поэтому в некоторых таблицах и графиках его приходится убирать.

CASE
WHEN Medium="referral" AND REGEXP_MATCH(Source,"(\\w+\\.)?vk.com") THEN "ВКонтакте"
WHEN Medium="referral" AND REGEXP_MATCH(Source,"(\\w+\\.)?facebook.com") THEN "Facebook"
WHEN Medium="referral" AND REGEXP_MATCH(Source,"(\\w+\\.)?ok.ru") THEN "Одноклассники"
WHEN Medium="referral" AND REGEXP_MATCH(Source,"(\\w+\\.)?instagram.com") THEN "Instagram"
WHEN Medium="referral" AND REGEXP_MATCH(Source,"t.co|.com") THEN "Twitter"
WHEN Social Source Referral="Yes" THEN Source
END

4. Рекламный трафик

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

CASE 
WHEN REGEXP_MATCH(Source,"(?i)adwords|google") AND REGEXP_MATCH(Medium,"(?i)cpc|cpm|display|banner") THEN "Google Ads"
WHEN REGEXP_MATCH(Source,"(?i)yandex_map") AND REGEXP_MATCH(Medium,"(?i)cpc|cpm|display|banner") THEN "Yandex Direct Maps"
WHEN REGEXP_MATCH(Source,"(?i).*yandex.*") AND REGEXP_MATCH(Medium,"(?i)cpc|cpm|display|banner") THEN "Yandex Direct"
WHEN REGEXP_MATCH(Source,"(?i)fb|facebook") AND REGEXP_MATCH(Medium,"(?i)cpc|cpm") THEN "Facebook Ads"
WHEN REGEXP_MATCH(Source,"(?i)vk|vkontakte") AND REGEXP_MATCH(Medium,"(?i)cpc|cpm") THEN "Vkontakte Ads"
WHEN REGEXP_MATCH(Source,"(?i)instagram") AND REGEXP_MATCH(Medium,"(?i)cpc|cpm") THEN "Instagram Ads"
WHEN REGEXP_MATCH(Source,"(?i)mytarget") AND REGEXP_MATCH(Medium,"(?i)cpc|cpm") THEN "Mytarget Ads"
WHEN REGEXP_MATCH(Medium,"(?i)cpa|cpc|cpm|display") THEN Source / Medium
END

Замечание: вы могли заметить, что regex-выражения в данных формулах местами выглядят необычно. Это связано с тем, что здесь работают немного отличные правила, от того, к чему вы могли привыкнуть. Например, по умолчанию REGEXP_MATCH будет искать полное совпадение:

Создание отчета

Для тех, кто недавно пользуется Data Studio напомню, чтобы использовать данные формулы выделения каналов трафика в отчетах, нужно вначале добавить в отчет источник данных Google Analytics, а затем в источнике данных создать новую кастомную переменную, в которой и задается формула. Вы можете использовать формулы, как по отдельности, так и объединять их. При объединении однако нужно помнить, что порядок выражений имеет значение. В начале должны идти regex-выражения с наиболее точным совпадением, в конце с наиболее широким.

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

Оценка эффективности рекламных каналов

Выделенные источника трафика вы естественно можете использовать для построения любых графиков и таблиц. Так, к примеру, если вы хотите оценить эффективность ваших рекламных активностей в разбивке по рекламным каналам, вам нужно будет сделать какую-то реализацию сквозной аналитики. Если Google Analytics является вашей основной системой аналитики, и вы собираете в ней данные расширенной торговли, включая транзакции, то в принципе, некую сквозную аналитику можно сделать даже внутри GA, либо же в GA + BigQuery. Это можно сделать либо с помощью сторонних сервисов, либо с помощью собственной реализации сбора данных через нужные вам API.

К примеру, можно импортировать данные о расходах Яндекс.Директ в GA, и тогда вы можете подтянуть в Data Studio все нужные вам параметры для оценки эффективности рекламы непосредственно из коннектора Google Analytics, включая ROAS:

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