Сегодня ровно год назад я опубликовал свой первый пост в блоге на branchandbound.net. За этот год я написал 12 постов, включая этот. Поскольку мы живем в век аналитики, я подумал, что было бы неплохо показать, как этот блог процветал в течение своего первого года.
Как и большинство людей, я использую Google Analytics, чтобы отслеживать, что происходит на этом сайте. Однако я не собираюсь показывать вам скриншоты панели инструментов GA. Не то чтобы это плохо (на самом деле это очень хорошо), но где в этом удовольствие? Поскольку это блог по программированию, мы собираемся подключиться к Google Analytics API . И на этот раз без использования моих стандартных инструментов торговли. Вместо использования языка, основанного на JVM, я обращаюсь к R, чтобы сделать некоторые вычисления.
Learning R
Язык R ориентирован на статистическое программирование и анализ данных. Кто-то описал это как безголовую версию Excel на стероидах. Я думаю, что это дает правильное ощущение того, что R. Если вы пришли из статически типизированного фона или ожидаете идеально созданного языка, вас ожидает культурный шок. R твердо живет в лагере «замолчи, работает», и его достоинства заключаются в огромном количестве доступных статистических библиотек. Скажем так, пересечение на диаграмме Венна, охватывающее статистиков и дизайнеров / разработчиков программного обеспечения, очень мало:
(пересечение будет заселена , хотя: проверить Джулию язык)
Я взял R в то время как после двух Coursera курсов , которые оба используют R в качестве основного языка: вычислительное анализа данных и анализ данных . Первый — скорее введение в программирование на R, тогда как последний курс посвящен прикладной статистике и машинному обучению на R. У меня нет формального опыта в области статистики, поэтому курс анализа данных был для меня гораздо более сложной задачей.
Настройте Google Analytics с помощью R
Достаточно о изучении R, давайте попробуем загрузить некоторые аналитические данные. Если вы хотите перейти прямо к коду и результатам, вы можете просмотреть результаты RMarkdown моего поискового анализа . RMarkdown позволяет грамотное программирование, комбинируя синтаксис Markdown с кодом R. Вы можете видеть, что он показывает мой рассказ, перемежающийся с реальным кодом и выводом, который он производит. В оставшейся части этого поста я расскажу о некоторых результатах этого поискового анализа, не вдаваясь слишком глубоко в механику, стоящую за ним.
Как вы получаете данные Google Analytics в R? Мы могли бы работать с REST API Analytics непосредственно в R, но есть и хорошая библиотека-обертка rga . Я упоминал, что есть пакет для всего в R? Вот как вы называете Google Analytics API:
library(rga) rga.open(instance = "ga", where = "~/temp/ga-api") # the call above triggers the oAuth flow, and the resulting # key is cached in the specified file. ga.df <- ga$getData("XXXXXXXX", # replace with your GA profile id start.date = "2012-03-23", end.date = "2013-03-23", metrics = "ga:visits", dimensions = "ga:date", max = 1500, sort = "ga:date")
Да, это instance="ga"
во второй строке указывает имя переменной, которая появится, позже для использования в ga$getData()
. Жизнь полна динамических сюрпризов с Р.
Мы присваиваем результат вызова ga $ getData переменной с именем ga.df
. Здесь df означает сокращение для dataframe, удобный тип данных, который напоминает знакомую реляционную таблицу. Поскольку R имеет именованные параметры, фактический вызов более или менее очевиден. Возвращает посещения по дате за указанный период. Все параметры с префиксами «ga:» непосредственно следуют за именем измерения и метрики из API Google Analytics.
На самом деле, самой сложной задачей было найти правильный идентификатор профиля, который нужно использовать для вызова API. Просто чтобы вы знали, этот идентификатор не совпадает с идентификатором отслеживания, который вы используете на своей странице. В любом случае, быстрый способ найти все идентификаторы вашего профиля — перейти на игровую площадку Google OAuth2 , авторизовать Google Analytics API и позвонить:
https://www.googleapis.com/analytics/v3/management/accounts/~all/webproperties/~all/profiles
Посетители
Теперь перейдем к некоторым фактическим цифрам. В прошлом году этот блог получил 23 903 посещений (из 18724 уникальных посетителей), что привело к 27 860 просмотрам страниц. Как вы можете видеть, количество посетителей резко возросло:
(еще раз, проверьте RMarkdown, чтобы увидеть, как генерируются графики)
Самое высокое значение даты было измерено в декабре 2012 года, когда Мартин Одерский написал в Твиттере, что моя Scala похожа на пост Git , и за один день я зарегистрировал 2077 посещений моего блога. Другие пики можно объяснить трафиком рефералов с сайтов обмена ссылками в социальных сетях, таких как Reddit и DZone. Увы, 15 лет, среднее число посещений в день дает лучшую картину реальных событий за большинство дней. К счастью, линия тренда (линия линейной регрессии) имеет наклон вверх.
Также интересно посмотреть, как посещения распределяются по дням недели, используя коробочную диаграмму с теми же данными:
Горизонтальные линии внутри прямоугольников представляют собой среднее число посетителей за определенный день недели. Сюжетное поле намеренно увеличено по оси Y, чтобы показать интересные детали. Вы можете себе представить выбросы 2077 посещений в один день (это было в четверг), в противном случае сюжет становится нечитаемым. Совершенно очевидно, что мой блог не так популярен в выходные дни, как в будние дни. Видимо, блоги о программировании читаются в основном на работе, что имеет смысл. По понедельникам и четвергам лучшие рабочие дни недели. Люди читают свой блюз по понедельникам в блоге по программированию? У меня нет объяснения, почему вторник относительно слаб по сравнению с другими буднями.
Популярные статьи
Написание статей в блоге — забавная вещь. У вас есть полная свобода писать все, что у вас на уме. Тем не менее, вы не можете не задаться вопросом «кто бы это прочитал?» Ответ на этот вопрос часто удивляет, по крайней мере, для меня. После года блога я начинаю обретать тон голоса. Я склонен писать более длинные посты. Желательно те, которые требуют некоторых исследований, а не просто короткие высказывания или мнения. Этот подход, кажется, находит отклик у многих людей. В следующей таблице показано, что было самым популярным в этом блоге в прошлом году:
Post (название страницы) | Просматриваемые | просмотров | Посетители |
---|---|---|---|
Скала как Git | 9383 | 8124 | 7936 |
Современный параллелизм и Java EE | 4300 | 3849 | 3695 |
Унификация рендеринга на стороне клиента и на стороне сервера путем встраивания JSON | 3141 | 2807 | 2769 |
Кросс-Build Injection в действии | 2355 | 2111 | 2148 |
Подготовка технического доклада | 2343 | 2104 | 1995 |
1225 | +791 | +948 | |
Атаки с перекрестной сборкой: насколько безопасна ваша сборка? | 1218 | 883 | 1051 |
Проверьте зависимости, используя PGP | +784 | 628 | 680 |
JFall 2012: голландская Java-классность | 729 | 620 | 648 |
Рецензия на книгу: DSL в действии | 633 | 575 | 598 |
JEEConf 2012 отчет о поездке | 505 | 442 | 446 |
277 | 21 | 231 | |
Архив | 188 | 10 | 162 |
Беседы Сандера Мак | 90 | 4 | 79 |
Рецензия на книгу: Бесконечность и разум | 70 | 50 | 55 |
(в некоторых строках количество посетителей превышает количество посещений. Не уверен, что с этим случилось …)
«Scala is like Git» — неоспоримый победитель, на его долю приходится около трети всех просмотров страниц в этом году блогов. Я, честно говоря, не ожидал, что этот пост взлетит так. На другом конце спектра мы находим «Книжное обозрение: Бесконечность и разум» . Хотя это также самый последний пост, я не ожидаю, что он пойдет никуда. Я все еще думаю, что это отличная книга, и, конечно, не жалею, что я потратил время на тщательный обзор.
В течение года я также стал участником программы DZone «Самый ценный блоггер». В рамках этой программы некоторые сообщения сверху были переизданы на DZone. Мой профиль DZone показывает, что эти переизданные статьи собрали еще 18 тыс. Просмотров страниц, которых явно нет в моем наборе данных.
Модели трафика
Большая часть трафика исходит от сайтов социальных сетей. Это становится понятным, если посмотреть на процент посещений по средам с течением времени:
Синяя область представляет реферальный трафик. На панели инструментов Google Analytics я вижу, что Reddit является лучшим реферером (29%), за ним следуют Twitter (11%) и DZone (9%). Некоторые посты также были отправлены в Hacker News, но, к сожалению, так и не получили своего успеха.
Что более интересно для меня, так это то, что процент «органического» трафика (то есть поискового трафика) неуклонно растет. Это имеет смысл, так как я начал практически без контента и нулевого PageRank, но это изменилось в течение года. В полном анализе вы также можете найти график, который подтверждает эти результаты, используя абсолютные числа поискового трафика.
Продолжайте вести блог
Конечно, это был хороший опыт, чтобы освободиться от панели инструментов Google Analytics и попытаться работать с данными аналитики непосредственно в R. Очевидно, что есть еще много интересного. Я доберусь до этого, когда мои статистические данные и знания в области R достигнут достаточный прогресс.
Хотя приятно отметить некоторые цифры о том, что происходит с этим блогом, в конце концов, это не имеет значения. Это не бизнес, и я все равно буду писать. Это весело, интересно и помогает мне выразить мои мысли, независимо от того, кто-то читает это или нет. Между тем, я надеюсь, что этот пост послужил источником вдохновения для того, как использовать R для анализа и визуализации данных Google Analytics.