Использование фильтров со списком в R с пакетом Google Analytics - PullRequest
0 голосов
/ 11 октября 2019

Я хотел бы извлечь определенный набор продуктов из Google Analytics, включив в него несколько показателей. Мой набор sku, который я хотел бы извлечь, находится в списке. Я не могу заставить Google Analytics делать то, что мне нужно.

Я пытался увидеть, как фильтровать список. Наиболее распространенный ответ, который я могу найти о том, как использовать dim_filter, содержится на этом веб-сайте:

https://www.rdocumentation.org/packages/googleAnalyticsR/versions/0.7.0/topics/dim_filter

Я пробовал несколько способов получить ответ и всегда получаю ошибкиво многих разных частях кода.

stDate <- "2019-07-18"
endDate <- "2019-09-30"

x <- list(BC$sku)


#Get all of the info from Analytics for products
b <- google_analytics(ga_id, 
       date_range = c(stDate, endDate),
       metrics = c("itemQuantity", "itemRevenue", "productDetailViews"),
       dimensions = c("productSku"),
       dim_filter = x,
       anti_sample = TRUE)

Приведенный выше код дает мне следующую ошибку:

Ошибка в as (dim_filters, ".filter_clauses_ga4"): нет метода или значения по умолчанию для приведения «list» к «.filter_clauses_ga4»

Я не могу получить какой-либо вывод из этого кода, так как фильтр не работает.

Конечно, я могу запросить весь набор данных, но это становится очень громоздким, так как я хотел бы иметь возможность запрашивать API Google Analytics с определенным набором skus в любое время, когда я захочу.

1 Ответ

0 голосов
/ 06 ноября 2019

Вам нужно больше построить свой объект фильтра для обработки списка SKU. Как указано в официальной документации googleAnalyticsR, dim_filters создаются с помощью функции dim_filter() и filter_clause_ga4()

. Вы можете отправить список dim_filter() in или попробовать использовать "IN_LIST "и отправьте ваш символьный вектор (если он не слишком большой)

В последнем случае конечный код будет выглядеть примерно так:

stDate <- "2019-07-18"
endDate <- "2019-09-30"



# if small enough list
dim_filters <- list(dim_filter("product_sku", "IN_LIST", BC$sku))


#Get all of the info from Analytics for products
b <- google_analytics(ga_id, 
       date_range = c(stDate, endDate),
       metrics = c("itemQuantity", "itemRevenue", "productDetailViews"),
       dimensions = c("productSku"),
       dim_filter = filter_clause_ga4(dim_filters),
       anti_sample = TRUE)


# this may work as well to construct the filter
dim_filters <- lapply(BC$sku, 
    function(x) {
      dim_filter("product_sku" ,operator = "EXACT", expressions = x)
    })
...