202101Июн

Корректный учет поискового трафика из Яндекса в Google Analytics

Случайно обнаружил, что Google Analytics перестал корректно учитывать трафик из поиска Яндекса как поисковый (organic). В Интернетах говорят, что такое безобразие тянется аж с 2017-го года. O_O Но по моим наблюдениям – с февраля-апреля 2019-го.

Это очень сильно портит общую статистику и мешает нормальной аналитике, посему решил это как-то пофиксить…

В Сети можно найти способ «лечения» через фильтры, но реализация мне не нравится. Поэтому расскажу сначала про этот способ, а потом покажу свой вариант исполнения.

Способ 0 (нерабочий)

Как было раньше? Во-первых, раньше Google Analytics нормально определял поисковые переходы из Яндекса. Во-вторых, позволял настраивать поисковики: или через код – _gaq.push(['_addOrganic', 'yandex.ru', 'text', true]); – или через настройки.

В настройках это выглядит так:

  • Заходим: Администратор → Ресурс → Отслеживание → Источники обычных результатов поиска
  • Нажимаем «Добавить поисковую систему»
  • Настройки:
    • Имя домена содержит: yandex.ru
    • Параметр запроса: text
    • Путь содержит (опционально): search

Не пашет, проверено.

Способ 1 (топорный)

В общих чертах предлагают создать 2 фильтра: первый заменяет у всех переходов с Яндекса канал с referral (простой переход с сайта) на organic (поисковый переход из выдачи поисковой системы), а второй – переименовывает все «яндексовские» источники (читай «домены», т.к. это реф-переходы) с yandex.ru (.com, .by, .kz и т.д.) на просто yandex.

Первый фильтр:

  • Тип фильтра: Пользовательский → Расширенный
  • Поле A -> Извлечь A: Источник кампании → ^yandex\.(ru|ua|by|kz|uz|com|fr)$
  • Поле В -> Извлечь В: Канал кампании → referral
  • Вывод в -> Конструктор: Канал кампании → organic
  • Поле А обязательно для заполнения: Да
  • Поле Б обязательно для заполнения: Да
  • Перезаписать поле вывода: Да

Второй фильтр:

  • Тип фильтра: Пользовательский → Найти и заменить
  • Поле фильтра: Источник кампании
  • Строка поиска: ^yandex\.(ru|ua|by|kz|uz|com|fr)$
  • Заменить строку: yandex

Встречается другой вариант второго фильтра, о нем расскажу ниже.

Почему способ «топорный» и не нравится мне?

Во-первых, первый фильтр помечает ВСЕ переходы из Яндекса на «поисковые». Как известно, Яша перевел многие свои проекты с поддоменов в подпапки на основном домене: например, images.yandex.ru, znatoki.yandex.ru, collections.yandex.ru, blogs.yandex.ru и т.д. И получается, что с этим фильтром переходы из Яндекс.Кью, Яндекс.Избранное (ex-Яндекс.Коллекции) и подобных сервисов будут считаться поисковыми, что абсолютно неверно.

Во-вторых, оба фильтра применимы к ограниченному числу доменных зон, в которых у Яндекса есть домены – в разных источниках от 6 до 8. А у него их по некоторым данным не меньше 38.

Поэтому мой вариант…

Способ 2 (мой)

На момент написания статьи способ рабочий. Он так же основан на двух фильтрах.

Фильтр 1

  • Тип фильтра: Пользовательский → Расширенный
  • Поле A -> Извлечь A: Источник кампании → ^(yandex\.\w{2,4}?(\.\w{2,4})?)$
  • Поле В -> Извлечь В: Путь перехода кампании → ^(\/)?(.*?search|turbo.*?)?$
  • Вывод в -> Конструктор: Канал кампании → organic
  • Поле А обязательно для заполнения: Да
  • Поле Б обязательно для заполнения: Да
  • Перезаписать поле вывода: Да

По пунктам:

^(yandex\.\w{2,4}?(\.\w{2,4})?)$ – определяем все домены Яндекса, которые:

  • начинаются на yandex, что исключает переходы с поддоменов, вроде zen.yandex.ru;
  • находятся в доменной зоне из 2-4 символов (4 – потому что у Яндекса есть домены в четырехсимвольных доменных зонах, например, yandex.mobi); намеренно не учитываю IDN-домены (вроде .xn--p1ai → .рф) и их варианты в пуникоде (punycode), т.к. они редиректят на основные домены;
  • или находится на домене второго уровня (например, yandex.com.ua).

^(\/)?(.*?search|turbo.*?)?$ – определяем в пути перехода варианты: или это «/» (главная Яндекса), или содержащий слова «search» или «turbo».

Простыми словами – откуда был произведен переход. Не углублялся в подробности, но почему-то большую часть переходов из поиска Яндекса Google Analytics считает как с главной – «/» – хотя поиск обычно идет или из /search/?text=, или из /yandsearch?text=. Это мое мнение.

Вторая часть шаблона фильтрации – это пути перехода, содержащие «search» или «turbo». Сюда относятся, в частности, поиск по картинкам, который чаще всего идет с /images/search, и поиск по блогам (/blogs/search). Здесь же переходы из Турбо-страниц, на которые обычно можно попасть только из поиска Яндекса.

В подтверждение своей теории про главную страницу в пути перехода я сравнил статистику GA и Метрики (уж там-то точно Яндекс правильно себя определяет). В Google Analytics:

  • заходим в Источники трафика → Источники → Весь трафик → Каналы (или Источник/канал),
  • выбираем Основной параметр → Источник,
  • добавляем дополнительный параметр «Путь перехода»,
  • в расширенном фильтре (справа кнопка «Ещё…») вводим:
    • Включить → Источник → Начинается с → yandex
    • Включить → Путь перехода → Поиск соответствующего регулярного выражения → ^(\/(.*?search|turbo.*?)?|\(not set\))$

Проверил на 2 трафиковых сайтах, теория подтверждается. Вот скриншот одного из них:

Переходы из Яндекса в Google Analytics и Яндекс.Метрике

Переходы из Яндекса в Google Analytics и Яндекс.Метрике

Пользователи GA к Посетителям Метрики и Сеансы GA к Визитам Метрики почти совпадают – расхождения допустимы и они небольшие.

organic – переопределяем все отфильтрованные выше переходы из referral в organic.

Фильтр 2

  • Тип фильтра: Пользовательский → Расширенный
  • Поле A -> Извлечь A: Источник кампании → ^(yandex\.\w{2,4}?(\.\w{2,4})?)$
  • Поле В -> Извлечь В: Канал кампании → organic
  • Вывод в -> Конструктор: Источник кампании → yandex
  • Поле А обязательно для заполнения: Да
  • Поле Б обязательно для заполнения: Да
  • Перезаписать поле вывода: Да

По пунктам:

^(yandex\.\w{2,4}?(\.\w{2,4})?)$ – определяем все те же домены Яндекса, что и в первом фильтре.

organic – из отфильтрованных доменов выбираем те, у которых стоит канал «Обычный поисковый трафик».

Под этот фильтр как раз подпадут практически все переходы, которые мы переназначили предыдущим фильтром в organic.

yandex – заменяем «Источник» у найденных переходов с домена на просто «yandex».

В итоге оба фильтра будут выглядеть примерно так:

Фильтры для поискового трафика Яндекса в Google Analytics

Фильтры для поискового трафика Яндекса в Google Analytics

Протестировал фильтры в «Отчет в реальном времени → Источники трафика», результаты переходов были такие:

  • https://yandex.ru/search/: Канал – Бесплатный, Источник – yandex
  • https://yandex.com.tr/search/: Канал – Бесплатный, Источник – yandex
  • https://yandex.ua/images/search: Канал – Бесплатный, Источник – yandex
  • https://yandex.ru/collections/: Канал – Переход, Источник – yandex.ru
  • https://yandex.ru/q/question/: Канал – Переход, Источник – yandex.ru

Удачи.

Freethinker.ru

Продвижение сайтов