Опубликовано: 15 июл 2020
Оценка эффективности каналов трафика — одна из первоочередных задач веб-аналитики. Мы можем определить, что визит (сессия) пользователя относится к тому или иному каналу по явным или неявным признакам (utm, source, referrer, другие метки). Т.е. при необходимости мы можем написать некий алгоритм анализа признаков трафика, декомпозиции каналов, и затем проанализировать их эффективность с точки зрения маркетинговых активностей.
Почему такая декомпозиция необходима и в данном случае реализована в Google Data Studio? Любая система аналитики, и Google Analytics не исключение, имеет ограниченный набор стандартных каналов трафика, которые при этом могут не всегда определяться корректно. В GA самый известный пример - это органический трафик с Яндекса, который в значительной части приписывается реферальному источнику, а не органическому.
Да, мы можем настраивать каналы и непосредственно в GA через Custom Chanel Grouping, но в Data Studio это можно сделать прозрачней, гибче и сразу же применить в визуализации отчетов. Нам позволят это сделать функции CASE и REGEXP_MATCH, имеющиеся в Data Studio.
Давайте попробуем вначале разобраться, почему же значительная часть органического трафика с Яндекса в 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.
На примере формулы реферального трафика мы сделаем следующие настройки:
Отслеживание переходов с карт может быть особенно актуально для малого бизнеса, магазинов, сервисов и т. п., поэтому мы выделим карты в отдельные источники. Мы можем попытаться определять такие переходы с помощью реферера, так, к примеру, часть переходов с Яндекс карт имеет реферер 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
Построение формулы для ссылочного трафика из социальных сетей реализовано по тому же принципу — вначале мы выделяем те источники, которые нам наиболее интересны и затем приплюсовываем все остальные источники. Здесь есть один подводный камень, на который нужно обратить внимание. Параметр 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
Декомпозиция рекламного трафика отличается тем, что она полностью опирается на используемый вами стандарт 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
будет искать полное совпадение:
REGEXP_MATCH(MyField, "foo\\.bar")
matches the literal period character. REGEXP_MATCH(field_expression, '(?i)a.*')
matches both "abc123" and "ABC123".REGEXP_MATCH
function returns boolean values.REGEXP_MATCH
attempts to match the entire string contained in field_expression. For example, if field_expression is "ABC123":REGEXP_MATCH(field_expression, 'A')
returns false.REGEXP_MATCH(field_expression, 'A.*')
returns true.Для тех, кто недавно пользуется Data Studio напомню, чтобы использовать данные формулы выделения каналов трафика в отчетах, нужно вначале добавить в отчет источник данных Google Analytics, а затем в источнике данных создать новую кастомную переменную, в которой и задается формула. Вы можете использовать формулы, как по отдельности, так и объединять их. При объединении однако нужно помнить, что порядок выражений имеет значение. В начале должны идти regex-выражения с наиболее точным совпадением, в конце с наиболее широким.
Также необходимо будет к каждому графику и таблице с новыми переменными добавить фильтр, исключающий значения null
для соответствующей кастомной переменной, например:
Выделенные источника трафика вы естественно можете использовать для построения любых графиков и таблиц. Так, к примеру, если вы хотите оценить эффективность ваших рекламных активностей в разбивке по рекламным каналам, вам нужно будет сделать какую-то реализацию сквозной аналитики. Если Google Analytics является вашей основной системой аналитики, и вы собираете в ней данные расширенной торговли, включая транзакции, то в принципе, некую сквозную аналитику можно сделать даже внутри GA, либо же в GA + BigQuery. Это можно сделать либо с помощью сторонних сервисов, либо с помощью собственной реализации сбора данных через нужные вам API.
К примеру, можно импортировать данные о расходах Яндекс.Директ в GA, и тогда вы можете подтянуть в Data Studio все нужные вам параметры для оценки эффективности рекламы непосредственно из коннектора Google Analytics, включая ROAS:
Здесь я привожу данный пример, естественно, не утверждая, что это оптимальный вариант сквозной аналитики, скорее как один из возможных вариантов, который может быть интересен тем, кто активно использует именно Google Analytics.