El extenso mundo de los segmentos en googleAnalyticsR

Segmentos en googleAnalyticsR

En posts anteriores se ha explicado las funcionalidades de la versión 4 de la API de Google Analytics y, en particular, la nueva versión del paquete googleAnalyticsR que permite interactuar con los informes y nuevas funcionalidades que incorpora la V4 de la API de Google Analytics.

En este post nos centraremos en cómo añadir segmentos avanzados a las consultas desde la librería de googleAnalyticsR a la API de Google Analytics. Los segmentos en la función google_analytics_4 suelen dar problemas, pero hay varias alternativas que pueden solventarlos.

Los segmentos son un subconjunto de datos y pueden ser de dos tipos: simples y secuenciales. En este post veremos cómo se construyen ambos tipos. Antes de empezar veremos las funciones más importantes que necesitamos conocer para utilizar segmentos en R.

  • ga_segment_list(): Devuelve una lista de la información de los segmentos definidos en la API
  • segment_element(): Crea un elemento o condición del segmento
  • segment_vector_simple(): Crea un segmento simple
  • segment_vector_sequence(): Crea un segmento secuencial
  • segment_define(): Define la estructura de un segmento
  • segment_ga4(): Crea un objeto segmento para poder usarlo

Ejemplos

Con estos conocimientos ya podemos pasar a construir segmentos avanzados. Hay tres formas de crear segmentos, a continuación, las explicaremos más detalladamente.

  • El primer caso es obtener directamente de la API los segmentos definidos previamente en Google Analytics. Para ello, existe una función en R para extraer los nombres y los id de los segmentos: ga_segment_list(). Cuando se identifica el id del segmento simplemente creamos el objeto segmento con segment_ga4().
my_segments <- ga_segment_list()
segs <- c(my_segments$items$name, my_segments$items$segmentId)
segment_for_call <- “gaid::-1”
SEGMENT <- segment_ga4(“Usuarios”, segment_id = segment_for_call)
  • La segunda opción es definir directamente el segmento a mano. Para saber más de cómo funciona la sintaxis podéis consultar el siguiente enlace. A continuación, se ven unos ejemplos simples que se podrían implementar en R.

Segmento avanzado simple

segment_for_call <- “users::condition::ga:sessions==1;condition::ga:userType==New Visitor”
SEGMENT <- segment_ga4(“Usuarios”, segment_id = segment_for_call)

Segmento avanzado secuencial

segment_for_call <- “users::sequence::ga:deviceCategory==desktop;->>ga:deviceCategory==mobile”
SEGMENT <- segment_ga4(“deviceCategory”, segment_id = segment_for_call)

  • La última opción es definir previamente las condiciones de los segmentos con la función segment_element() y juntar los elementos para formar el objeto segmento.

seg1 <- segment_element(“sessions”,
operator = “EQUAL”,
type = “METRIC”,
comparisonValue = 1,
scope = “USER”)

seg2 <- segment_element(“sessionCount”,
operator = “EXACT”,
type = “DIMENSION”,
expressions = “1”)

# Para crear un segmento simple
segment_first <- segment_vector_simple(list(list(seg1),list(seg2)))
# Para crear un segmento secuencial
segment_first <- segment_vector_sequence(list(list(seg1),list(seg2)))
# Creamos el objeto segmento
sd_segment <- segment_define(list(segment_first))
SEGMENT <- segment_ga4(“first”, user_segment = sd_segment)

Cuando ya tienes definido SEGMENT, en cualquiera de los casos anteriores, sólo faltaría realizar la consulta con la función google_analytics_4:

ultima_pantalla <-  google_analytics_4(id,
date_range = c(“2018-03-01”, “2018-03-31”),
metrics = c(“screenViews”),
dimensions = c(“ga:dimension1″,”ga:date”,”ga:exitScreenName”),
segments = SEGMENT,
anti_sample=T,
max = 10000)

Conclusiones y valoraciones

Se han encontrado muchos problemas al trabajar con fechas en esta versión. La conclusión que obtuve fue utilizar la v3 (función google_analytics_3) y definir a mano el segmento, por ejemplo:

SEGMENT <- “users::sequence::^ga:sessionCount==1;dateOfSession<>2018-03-01_2018-03-03”

En general, yo intentaría utilizar la primera opción, siempre y cuando no se utilicen condiciones de fecha. Esta opción es la más fácil de utilizar y en la que menos tiempo se pierde.

Si esta opción no funciona pasaría a la tercera, definiendo las condiciones previamente con segment_element(). Esta opción me ha funcionado la mayoría de las veces, y además, es más fácil equivocarse escribiendo el segmento a mano.

Ya conocéis lo principal para poder empezar a probar y utilizar segmentos. Enjoy it!

Autor:

Leave Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.