Расчет трафика по небрендовым запросам при помощи R

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

Чтобы не утруждать себя сбором данных из разных интерфейсов систем аналитики, воспользуемся замечательной R Studio. Для начала краткая справка из Википедии.

R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU.

Нам же потребуется минимум его возможностей.

Опустим подробности установки R и приступим к выгрузке данных. Для работы нам понадобятся следующие библиотеки:

Загружаем и устанавливаем их один раз. При последующих запусках эта часть скрипта нам не понадобится. RGoogleAnalytics была удалена из CRAN, но есть ее архив, который можно вручную распаковать в нужную директорию. Ссылка на библиотеку: https://github.com/Tatvic/RGoogleAnalytics (тут же можно будет найти всю необходимую документацию по формированию запросов).

Подключаем установленные библиотеки:

Lubridate присоединяется автоматически.

Чтобы появилась возможность выгружать из Google Search Console более 5000 рядов, прописываем следующие опции для библиотеки:

Далее нужно получить client id и client secret для работы с API Google Analytics. Для этого нужно зарегистрировать свое приложение тут.

Запишем даты в переменные, которые будут далее использоваться во всех запросах к API (формат – YYYY-NN-DD). При последующей работе в идеале нужно будет задавать только их:

Формируем запрос к API Яндекса. По сути, это обычный GET запрос.

В 36 строке необходимо указать номер счетчика метрики.

В 42 строке – регулярное выражение, исключающее брендовые запросы, где маски разделяются вертикальной чертой. Например ‘бренд|brand|брэнд’

В 43 строке нужно вставить токен. Инструкции по получению токена можно найти тут.

Далее несколько простых манипуляций, при помощи которых мы обрабатываем полученные данные по небрендовому трафику Яндекса и сумму записываем в переменную «х».

Часть этих шагов нужна, чтобы была возможность просмотреть промежуточный результат.

Переходим к выгрузке данных из Google Analytics. Ранее мы уже сохраняли токен. Теперь мы его загружаем и проверяем валидность.

Далее выстраиваем запрос к API GA для выгрузки органических сессий из Яндекса. В строке 79 прописываем номер счетчика GA, откуда будем выгружать данные.

Делаем запрос к API и записываем данные в датафрейм. Настройка split_daywise = T позволяет выгружать данные по дням, что исключает семплинг.

Суммируем сессии из Яндекса в переменную «y» и объединяем их с «x» в одном датафрейме.

Переходим к данным из Google Search Console.

Авторизуемся, при помощи функции scr_auth формируем запрос к API. Для dimensionFilterExp нужно каждую маску указывать как отдельный фильтр. Например: dimensionFilterExp =c(‘query!~бренд’, ‘query!~brand’, ‘query!~брэнд’). Документацию по формированию таких запросов можно найти тут.

Суммируем небрендовые запросы Google и записываем их в переменную x_sum.

Аналогично органическому трафику из Яндекс выгружаем сессии из Google. Их сумму записываем в переменную y_sum:

Еще несколько простых действий, в которых мы объединяем все наши данные в одну табличку:

На выходе получаем следующее:

Можно прямо в R посчитать долю в процентах, но мне нужны данные в выгрузке именно в таком виде.

Далее прописываем путь к файлу и формируем его название. И, собственно, сохраняем файл в xlsx.

Важно помнить, что этот метод тоже не дает абсолютно точный результат. Данные в том же Google Search Console по кликам достаточно ощутимо отличаются от данных по трафику google / organic. Скрипт просто позволяет достаточно быстро собрать данные из разных интерфейсов, обработать их и выдать результат.

Также стоит обратить внимание на то, что данные в GSC обновляются с задержкой в 2–3 дня.

(Голосов: 5, Рейтинг: 5)