8-bit-sheep / googleAnalyticsR

Use the Google Analytics API from R
https://8-bit-sheep.com/googleAnalyticsR/
Other
257 stars 76 forks source link

Realtime metrics/dimensions can not be ordered by in DSL - Error in is.OrderBy(x[[1]]) : object 'minutesAgo' not found #400

Open MarkEdmondson1234 opened 2 years ago

MarkEdmondson1234 commented 2 years ago

The real-time metrics/dimensions listed here: https://developers.google.com/analytics/devguides/reporting/data/v1/realtime-api-schema

...are not in the dimension/metric list fetched via ga_meta("data") and so DSL calls fail.

ga_data_order(-minutesAgo)
#Error in is.OrderBy(x[[1]]) : object 'minutesAgo' not found

Workaround - call functions the DSL uses yourself:

ga_data_order(googleAnalyticsR:::OrderBy(dimension = googleAnalyticsR:::DimensionOrderBy("minutesAgo")))
#==GA4 OrderBy==
#Dimension:     MinutesAgo 
#OrderType:     ALPHANUMERIC 
#Descending:    TRUE 

e.g.

mins <- ga_data_order(googleAnalyticsR:::OrderBy(dimension = googleAnalyticsR:::DimensionOrderBy("minutesAgo"),
                                                       desc = FALSE))

ga_data(prop_id,
              metrics = "activeUsers",
              dimensions = c("minutesAgo", "audienceName", "user_profession"),
              orderBys = mins,
              realtime = TRUE)
MarkEdmondson1234 commented 2 years ago

the limit = -1 doesn't work either with real-time fetches

! http_400 limit must be positive. The API received limit = -1