У меня есть несколько вызовов API GA, которые я хотел бы выполнить в одном скрипте. Вызовы будут различаться в зависимости от «источника» (технически это просто имя-заполнитель) и конкретных фильтров и показателей для каждого источника.
Я использовал пакет RGA со сценарием, который позволял мне указать все идентификаторы профилей, которые я хотел использовать. Функция lapply перебирает идентификаторы профилей, но я хотел бы также перебирать значения метрик и фильтров для каждого «источника», указанного в таблице данных. Это было бы намного эффективнее, чем перечисление 40 различных вызовов в сценарии с 40 различными фильтрами.
Вот сценарий, который я использовал:
ids <- c(123456,12345679)
start <- "2015-12-01"
end <- "2015-12-31"
res <- lapply(ids, function(id) {
ans <- get_ga(id, start.date = start, end.date = end,
dimensions = "ga:yearMonth",
metrics = "ga:sessions",
filters = "ga:medium==organic;ga:landingPagePath!~gppc|sm003|refer=")
ans$id <- id
return(ans)
})
res <- do.call(rbind, res)
organic <- cbind("organic", res)
Строка «органический» будет замещающим именем для строки, которая будет содержать возвращаемые показатели.
Я бы предпочел использовать этот фрейм данных для присвоения значений:
a <- c(123456,12345679,123456,12345679,123456,12345679)
b <- c("organic","organic","cpc","cpc","banner","banner")
c <- c("ga:medium==organic;ga:landingPagePath!~gppc|sm003|refer=","ga:medium==organic;ga:landingPagePath!~gppc|sm003|refer=","ga:landingPagePath!~gppc|sm003|refer=","ga:landingPagePath!~gppc|sm003|refer=","ga:medium==banner","ga:medium==banner")
check <- cbind(a,b,c)
colnames(check)[1:3] <- c("profile","source","filters")
Затем используйте какую-то функцию применения или цикл, чтобы вернуть каждую строку на основе профиля, комбинации фильтров.