Категории

Подпишись
на новые статьи

Просто введи свой e-mail:

Солнечная диаграмма основных источников трафика до конверсии на R

Появились сервисы, которые визуализируют пути источников пользователей до конверсии в виде диаграммы SunBurst. При этом ради одной картинки нужно предоставить доступ ко всем аккаунтам Google Analytics. Делать это особого желания не было, поэтому сделал для себя аналог на языке R при помощи пакета sunburstR
Он так же интерактивный, можно рассматривать каждый «луч»

Данные показывает в процентном соотношении и в количественном:

 

Код ниже
 


library(googleAnalyticsR)
library(shiny)
library(sunburstR)
# Ограницение максимальной длины луча в источниках ----
pathLimit <- 10

ga_auth()
my_accounts <- ga_account_list()

ga_view_id<-111111111 # Номер представления ----


mcf_gadata <- google_analytics(id = ga_view_id, 
                                 start="2018-01-01", end="2018-01-25", 
                                 metrics = c("totalConversions", "totalConversionValue"), 
                                 dimensions = c("sourceMediumPath"), 
                                 # Если нужно отфильтровать по определенной цели, то указываем её номер ----
                                 # filters = c("mcf:conversionGoalNumber==001"), ----
                                 type="mcf")  


  

server <- function(input,output,session){

  output$sunburst <- renderSunburst({
      sequences <- mcf_gadata[,c(1,2)]
    
   
      sequences$sourceMediumPath <- gsub("CLICK", "", sequences$sourceMediumPath, fixed=TRUE)
      sequences$sourceMediumPath <- gsub("NA", "", sequences$sourceMediumPath, fixed=TRUE)
      sequences$sourceMediumPath <- gsub(":", "", sequences$sourceMediumPath, fixed=TRUE)
      
      sequences$sourceMediumPath <- lapply(strsplit(as.character(sequences$sourceMediumPath),">"), trimws)
      sequences$sourceMediumPath <- lapply(sequences$sourceMediumPath, head, pathLimit )
      sequences$sourceMediumPath <- lapply(sequences$sourceMediumPath, paste ,sep='',collapse ='-' )
      add_shiny(sunburst(sequences , count = T, legend=list(w=120)   ))
  })


  selection <- reactive({
    input$sunburst_mouseover
  })

  output$selection <- renderText(selection())
}


ui<-fluidPage(
  fluidRow(
    column(12,
    # plot sunburst ----
    
      sunburstOutput("sunburst", width = "100%", height = "600px")
    )
  )
)

shinyApp(ui = ui, server = server)

 

Автор: Дата создания:

Комментарии (6)

  1. Sergey:
    янв 31, 2018 at 12:37

    Андрей, премного благодарен, очень круто.
    Подскажите пожалуйста, как-то можно данный отчет интегрировать в Power BI?

    Ответить

    1. Москалец Андрей:
      фев 01, 2018 at 06:02

      Теоретически - убрать Shiny и разбить на две части - получение данных и визуализация. Получение кодом R, визуализацию так же через https://docs.microsoft.com/ru-ru/power-bi/desktop-r-visuals
      Нужно только на практике попробовать

      Ответить

  2. Кирилл:
    янв 31, 2018 at 04:19

    Спасибо, подпишусь на ответ.

    Ответить

  3. Максим:
    фев 08, 2018 at 07:00

    Так же интересна данная визуализация в PowerBI. Был бы рад увидеть статью с такой реализацией.

    Ответить

  4. Павел:
    фев 08, 2018 at 10:16

    Андрей, подскажите, на каком количестве строк пробовали построить данный отчёт?

    На 1000 ещё открылся, но когда попробовал открыть 7500 строк - в ответ беспробудная тишина.

    Спасибо!

    И очень рекомендую вам пакет RGA, там нет при загрузке путей такого мусора, который потом приходится вырезать, хотя в этом пакете много всего интересного есть конечно :)

    Ответить

    1. Максим:
      фев 09, 2018 at 11:20

      Отчет строится, но требуется долгое ожидание (доходило до 5 минут)

      Ответить







Разрешённые теги: <b><i><br>Добавить новый комментарий: