Недавно на 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 дня.