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
Solución:Rails no encuntera la librerÃa MySQL aunque estéinstalada(苹果操作系统)