Расчет трафика по небрендовым запросам при помощи R
Недавно на SEOnews вышла
Чтобы не утруждать себя сбором данных из разных интерфейсов систем аналитики, воспользуемся замечательной R Studio. Для начала краткая справка из Википедии.
R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU.
Нам же потребуется минимум его возможностей.
Опустим подробности
Загружаем и устанавливаем их один раз. При последующих запусках эта часть скрипта нам не понадобится. 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.
Аналогично органическому
Еще несколько простых действий, в которых мы объединяем все наши данные в одну табличку:
На выходе получаем следующее:
Можно прямо в R посчитать долю в процентах, но мне нужны данные в выгрузке именно в таком виде.
Далее прописываем путь к файлу и формируем его название. И, собственно, сохраняем файл в xlsx.
Важно помнить, что этот метод тоже не дает абсолютно точный результат. Данные в том же Google Search Console по кликам достаточно ощутимо отличаются от данных по
Также стоит обратить внимание на то, что данные в GSC обновляются с задержкой в 2–3 дня.