Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
8 Августа 2018 в 12:23

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

5 9993
Иван Бурмистров
SEO-специалист «Связной»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(Нет голосов)
5 комментариев
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
  • Александра
    1
    комментарий
    LANG_NO
    читателей
    Александра
    6 месяцев назад
    Доброго времени. Сейчас пытаемся запустить описанный выше скрипт.
    Используемая вами функция read.csv не может обратиться по ссылке с , она работает только с http. Поэтому пришлось запрашивать данные RCurl (версия R 3.4.4)
    Так же, при попытке запросить данные метрики, используя библиотеку Curl (а так же других библиотек и даже другого языка) приходит 400 ошибка, так как ! в адресе - это служебный символ, который не может быть обработан консолью. Причем экранировать ...
    Доброго времени. Сейчас пытаемся запустить описанный выше скрипт.
    Используемая вами функция read.csv не может обратиться по ссылке с , она работает только с http. Поэтому пришлось запрашивать данные RCurl (версия R 3.4.4)
    Так же, при попытке запросить данные метрики, используя библиотеку Curl (а так же других библиотек и даже другого языка) приходит 400 ошибка, так как ! в адресе - это служебный символ, который не может быть обработан консолью. Причем экранировать его в ссылке, как и поставить другие кавычки в самом адресе, чтобы консоль видела, что символ - часть ссылки - Яндекс не дает.
    Аналогичная ситуация в Linux (Ubuntu) и Windows.
    Не подскажете ли, как удалось решить проблему или она у вас не возникала? =)
    -
    0
    +
    Ответить
    • Иван Бурмистров
      7
      комментариев
      LANG_NO
      читателей
      Александра, к счастью, у меня такой ошибки не возникало. Скажите, пожалуйста, Вы пытались отправить этот запрос к метрике просто через строку браузера? Есть вероятность, что проблема не в read.csv, а в самом формировании запроса где-то закралась ошибка.
      -
      0
      +
      Ответить
  • Fartos
    6
    комментариев
    LANG_NO
    читателей
    Fartos
    6 месяцев назад
    Статья то, что нужно!
    -
    0
    +
    Ответить
  • Иван Бурмистров
    7
    комментариев
    LANG_NO
    читателей
    Иван Бурмистров
    6 месяцев назад
    И, дабы не перепечатывать код, если он кому-то понадобится, ссылка на скрипт: drive.google.com/file/d/1_quWgMHLT96Z_4yiqDhmnExOeZG_2688/view?usp=drivesdk
    -
    1
    +
    Ответить

Отправьте отзыв!