googleAnalyticsR (version 0.4.2)

google_analytics_4: Get Google Analytics v4 data (single request)

Description

A convenience function that wraps make_ga_4_req and fetch_google_analytics_4 for the common case of one GA data request.

Will perform automatic batching if over the 10000 row per API call limit.

Usage

google_analytics_4(viewId, date_range = NULL, metrics = NULL,
  dimensions = NULL, dim_filters = NULL, met_filters = NULL,
  filtersExpression = NULL, order = NULL, segments = NULL,
  pivots = NULL, cohorts = NULL, max = 1000,
  samplingLevel = c("DEFAULT", "SMALL", "LARGE"), metricFormat = NULL,
  histogramBuckets = NULL, anti_sample = FALSE,
  anti_sample_batches = "auto", slow_fetch = FALSE)

Arguments

viewId

viewId of data to get.

date_range

character or date vector of format c(start, end) or for two date ranges: c(start1,end1,start2,end2)

metrics

Metric to fetch. Supports calculated metrics.

dimensions

Dimensions to fetch.

dim_filters
met_filters
filtersExpression

A v3 API style simple filter string. Not used with other filters.

order

An order_type object

segments

List of segments as created by segment_ga4

pivots

Pivots of the data as created by pivot_ga4

cohorts

Cohorts created by make_cohort_group

max

Maximum number of rows to fetch. Defaults at 1000. Use -1 to fetch all results. Ignored when anti_sample=TRUE.

samplingLevel

Sample level

metricFormat

If supplying calculated metrics, specify the metric type

histogramBuckets

For numeric dimensions such as hour, a list of buckets of data. See details in make_ga_4_req

anti_sample

If TRUE will split up the call to avoid sampling.

anti_sample_batches

"auto" default, or set to number of days per batch. 1 = daily.

slow_fetch

For large results this slows down the API requests to avoid 500 errors

Value

A Google Analytics data.frame

Anti-sampling

anti_sample being TRUE ignores max as the API call is split over days to mitigate the sampling session limit, in which case a row limit won't work. Take the top rows of the result yourself instead e.g. head(ga_data_unsampled, 50300)

If you are lucky enough to need sub-day sampling, it will attempt to fetch per hour, but you are restricted to not using dim_filter argument if this is the case. Try using filtersExpression instead.

anti_sample being TRUE will also set samplingLevel='LARGE' to minimise the number of calls.

See Also

Other GAv4 fetch functions: fetch_google_analytics_4_slow, fetch_google_analytics_4, make_ga_4_req

Examples

Run this code
# NOT RUN {
# }
# NOT RUN {
library(googleAnalyticsR)

## authenticate, or use the RStudio Addin "Google API Auth" with analytics scopes set

ga_auth()

## get your accounts

account_list <- google_analytics_account_list()

## account_list will have a column called "viewId"
account_list$viewId

## View account_list and pick the viewId you want to extract data from
ga_id <- 123456

## simple query to test connection
google_analytics_4(ga_id, 
                   date_range = c("2017-01-01", "2017-03-01"), 
                   metrics = "sessions", 
                   dimensions = "date")

# }
# NOT RUN {
# }

Run the code above in your browser using DataLab