r Soluciónaldashboard paraelmásterdeAnalíticaWeb

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r Soluciónaldashboard paraelmásterdeAnalíticaWeb相关的知识,希望对你有一定的参考价值。

###########################################################################
# @jrcajide, 2018-03
# Dashboards
##########################################################################

setwd("~/Documents/GitHub/kschool_r/08-Dashboards")


# Configuración acceso a GA -----------------------------------------------

library(googleAnalyticsR)
ga_auth(new_user = T)

file.exists('.httr-oauth')

file.copy('.httr-oauth', 'ga_auth_token.httr-oauth')

.rs.restartR()

Sys.setenv(GA_AUTH_FILE = 'ga_auth_token.httr-oauth')

library(googleAnalyticsR)

ga_account_list()


# save(ga_funnel_step_1_df, ga_funnel_step_2_df, ga_channels_df, ga_leads_df, ga_adwords_df, file = "data/ga_data.RData")
# load("data/ga_data.RData")

# File > New file > R Markdown ... > From Template > Flex Dashboard

# Módulos del dashboard ---------------------------------------------------


# Librerías y parámetros del dashboard  ----------------------------------
Sys.setenv(GA_AUTH_FILE = 'ga_auth_token.httr-oauth')
library(googleAnalyticsR)
library(tidyverse)
library(highcharter)
library(forecast)
library(flexdashboard)

# 1) Embudo de captación de Leads -----------------------------------------
source("01_leads_funnel.R")$value

# 2) Correlaciones entre canales ------------------------------------------
source("02_channels.R")$value

# 3) Predicción de Leads --------------------------------------------------
source("03_leads_forecast.R")$value

# 4) Segmentación de campañas SEM -----------------------------------------
source('04_adwords_campaigns.R')$value




---
title: "Dashboard capatación de Leads"
author: "@jrcajde"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
---

```{r setup, include=FALSE}
Sys.setenv(GA_AUTH_FILE = 'ga_auth_token.httr-oauth')
library(googleAnalyticsR)
library(tidyverse)
library(highcharter)
library(forecast)
library(flexdashboard)
```



Column {data-width=350}
-----------------------------------------------------------------------

### Leads

```{r}
source("01_leads_funnel.R")$value
```

### Canales

```{r}
source("02_channels.R")$value
```

Column {data-width=650}
-----------------------------------------------------------------------

### Predicción Leads

```{r}
source("03_leads_forecast.R")$value
```

### Campañas SEM

```{r}
source('04_adwords_campaigns.R')$value
```

###########################################################################
# Google Adwrods campaigns clustering
##########################################################################

# Obtención de datos ------------------------------------------------------

# Obtener las conseciones del objetivo Formulario de contacto, las impresiones y el coste de cada campaña de Google Adwords en los 30 últimos días.

ga_adwords_df <- google_analytics_3(id = "46728973", 
                                    start="30daysAgo", 
                                    end="yesterday", 
                                    metrics = c("goal3completions", "impressions", "adCost"), 
                                    dimensions = c("ga:campaign"), 
                                    filters = "ga:sourceMedium=@google;ga:medium=@cpc;ga:campaign!=(not set);ga:impressions>0",
                                    segment = NULL,
                                    max_results = "10001")

ga_adwords_df %>% 
  head(10)


# Transformación de los datos ---------------------------------------------

ga_adwords_scaled_mat <- scale(ga_adwords_df[-1])

ga_adwords_scaled_mat %>% 
  head()

ga_adwords_scaled_mat %>% 
  summary()


# Clustering --------------------------------------------------------------

num_clusters <- 4
clustering_res <- kmeans(ga_adwords_scaled_mat, num_clusters)

assigned_clusters <- clustering_res$cluster

table(assigned_clusters)
barplot(table(assigned_clusters))

ga_adwords_df <- ga_adwords_df %>% 
  as_data_frame() %>% 
  mutate(cluster = paste0("Cluster #", assigned_clusters))

# ga_adwords_df$cluster <- paste0("Cluster #", clustering_res$cluster)

ga_adwords_df %>% 
  dplyr::select(-(campaign)) %>% 
  group_by(cluster) %>% 
  summarise_all(funs(mean)) 

# Visualización segmentación de campañas ----------------------------------

hchart(ga_adwords_df, hcaes(x = adCost, y = impressions, group = cluster, size=goal3completions), type = 'scatter') %>% 
  hc_title(text = 'SEM') %>% 
  hc_subtitle(text = 'Clustering de campañas de Google Adwords') %>%
  hc_tooltip(pointFormat = "Campaña: {point.campaign}") %>% 
  hc_add_theme(hc_theme_google())
###########################################################################
# Leads forecast
##########################################################################

# Obtención de datos ------------------------------------------------------

# ¿Cúnatos eventos únicos mensuales han tenido lugar para la categoría de evento 'Conversion' y la acción de evento 'Form' desde 2015-01-01 hasta el 2018-02-28?

# yearMonth uniqueEvents
# 201501           68
# 201502           65
# 201503           78

ga_leads_df <- google_analytics_3(id = "46728973", 
                                  start="2015-01-01", 
                                  end="2018-02-28", 
                                  metrics = c("uniqueEvents"), 
                                  dimensions = c("yearMonth"), 
                                  filters = "ga:eventCategory==Conversion,ga:eventAction==Form",
                                  segment = NULL,
                                  max_results = "10001")


# Transformación de los datos en una serie temporal -----------------------

ga_leads_ts <- ts(ga_leads_df$uniqueEvents, start = c(2015,01), frequency = 12)
plot(ga_leads_ts)


# Modelado de la serie temporal -------------------------------------------

leads_model <- HoltWinters(ga_leads_ts)
leads_forecast <-  forecast(leads_model, h = 6, level = 95)


# Visualización predicción de leads ---------------------------------------

hchart(leads_forecast) %>% 
  hc_add_theme(hc_theme_google()) %>% 
  hc_title(text = "Consecución de Leads") %>% 
  hc_subtitle(text = "Datos históricos y previsión a 6 meses")
###########################################################################
# Channel correlations
##########################################################################

# Obtención de datos ------------------------------------------------------

# Engaged users:
# ¿Cuántos sesiones ha habido por canal durante los 30 últimos días?

# date channelGrouping sessions
# 2018-02-21         (Other)       35
# 2018-02-21          Direct      131
# 2018-02-21  Organic Search      313
# 2018-02-21     Paid Search      119

ga_channels_df <- google_analytics_3(id = "46728973", 
                                     start="30daysAgo", 
                                     end="yesterday", 
                                     metrics = c("sessions"), 
                                     dimensions = c("date", "channelGrouping"), 
                                     max_results = "10001")

ga_channels_df %>% 
  head(10)


# Transformación de los datos en una matriz -------------------------------

pivoted_channels_df <- ga_channels_df %>% 
  as_data_frame() %>% 
  spread(channelGrouping, sessions) %>% 
  replace(., is.na(.), 0)

channel_mat <- pivoted_channels_df %>% 
  select(-date) %>% 
  as.matrix() 


# Correlación -------------------------------------------------------------

correlation_mat <- cor(channel_mat)

# Visualización correlación canales ---------------------------------------

hchart(correlation_mat) %>% 
  hc_add_theme(hc_theme_google()) %>% 
  hc_title(text = "Canales de adquisición") %>%
  hc_subtitle(text = "Correlaciones entre canales")
###########################################################################
# Widget Leads Funnel
##########################################################################

# Obtención de datos ------------------------------------------------------

# Engaged users:
# ¿Cuántos usuarios han accedido a páginas de cursos en sessiones de más de 3 minutos durante los últimos 30 días?

# users
# 1630

ga_funnel_step_1_df <- google_analytics_3(id = "46728973", 
                                          start="30daysAgo", 
                                          end="yesterday", 
                                          metrics = c("users"), 
                                          segment = "sessions::condition::ga:sessionDuration>180;condition::ga:contentGroup2==Cursos",
                                          max_results = "10001")
# Leads:
# ¿Cuántos usuarios han enviado el formulario de inscripción?
# Acción del evento = 'Form Inscription'

# users
# 36

ga_funnel_step_2_df <- google_analytics_3(id = "46728973", 
                                          start="30daysAgo", 
                                          end="yesterday", 
                                          metrics = c("users"), 
                                          filters = "ga:eventAction=~(Form Inscription)",
                                          segment = NULL,
                                          max_results = "10001")


ga_funnel_step_1_df <- ga_funnel_step_1_df %>% 
  as_data_frame() %>% 
  mutate(funnel_step = "Engage")

ga_funnel_step_2_df <- ga_funnel_step_2_df %>% 
  as_data_frame() %>% 
  mutate(funnel_step = "Lead")

funnel_df <- bind_rows(ga_funnel_step_1_df, ga_funnel_step_2_df)

# Visualización Funnel ----------------------------------------------------

hchart(funnel_df, "funnel", hcaes(y = users, name = funnel_step)) %>%  
  hc_add_theme(hc_theme_google()) %>% 
  hc_title(text = "Funnel captación de Leads") %>%
  hc_subtitle(text = "Usuarios que interactúan con la oferta de cursos y contactos generados")

以上是关于r Soluciónaldashboard paraelmásterdeAnalíticaWeb的主要内容,如果未能解决你的问题,请参考以下文章

text Solución是一个可变的globales en angular

BZOJ 4292 Równanie

Solución:Rails no encuntera la librería MySQL aunque estéinstalada(苹果操作系统)

ABC243G Sqrt

ABC243G Sqrt

ABC243G Sqrt