| Type: | Package | 
| Title: | Access 'Piwik Pro' Website Statistics | 
| Date: | 2022-08-29 | 
| Version: | 0.4.0 | 
| Author: | Martin Stingl <martin.stingl@dfv.de> | 
| Maintainer: | Martin Stingl <martin.stingl@dfv.de> | 
| Description: | Run Queries against the API of 'Piwik Pro' https://developers.piwik.pro/en/latest/custom_reports/http_api/http_api.html. The result is a tibble. | 
| URL: | https://piwikpror.rstats-tips.net | 
| BugReports: | https://github.com/dfv-ms/piwikproR/issues | 
| License: | GPL (≥ 3) | 
| Encoding: | UTF-8 | 
| Imports: | httr, rjson, tibble, purrr, lubridate, magrittr, dplyr, rlang, stringr, readr (≥ 2.1.0), digest, fs, tidyr, glue | 
| RoxygenNote: | 7.2.1 | 
| Suggests: | testthat (≥ 3.0.0), knitr, rmarkdown | 
| Config/testthat/edition: | 3 | 
| VignetteBuilder: | knitr | 
| NeedsCompilation: | no | 
| Packaged: | 2022-08-31 18:47:13 UTC; stingl | 
| Repository: | CRAN | 
| Date/Publication: | 2022-09-01 09:10:38 UTC | 
Maximum number of lines requested in Analytics-API
Description
Maximum number of lines requested in Analytics-API
Usage
MAX_LINES_PER_REQUEST_ANALYTICS_API()
Value
int
Maximum number of lines requested in Users-API
Description
Maximum number of lines requested in Users-API
Usage
MAX_LINES_PER_REQUEST_USERS_API()
Value
int
Convert column-type according to column_name
Description
Convert column-type according to column_name
Usage
apply_types(data, timestamp_to_date = TRUE)
Arguments
| data | tibble | 
| timestamp_to_date | boolean convert timestamp to date | 
Value
tibble
Build filter from tribble
Description
Build filter from tribble
Usage
build_filter(filters, global_operator = "and")
Arguments
| filters | tribble with columns 
 Possible values for operator: 
 | 
| global_operator | "and" or "or" | 
Value
filter json encoded to feed to build_query
Examples
filters <- tibble::tribble(
 ~column, ~operator, ~value,
 "event_url", "matches", "Zamperoni",
 "event_url", "matches", "-1[34]"
)
# With optional transformation
filters <- tibble::tribble(
 ~column, ~operator, ~value, ~transformation,
 "event_url", "starts_with", "/medien", "to_path",
 "event_url", "matches", "-1[34]", NULL
)
 filters <- build_filter(filters, "and")
# If values of two or more different types are used use lists
filters <- tibble::tribble(
  ~column, ~operator, ~value,
  "device_type", "eq", list(0),
  "location_country_name", "eq", list("DE")
)
# This also works for transformation
Build the query
Description
Build the query
Usage
build_query(
  date_from,
  date_to,
  website_id,
  columns,
  filters = NULL,
  metric_filters = NULL,
  offset = 0,
  max_lines = 0
)
Arguments
| date_from | Start date of query | 
| date_to | End date of query | 
| website_id | website_id from piwik | 
| columns | tibble containing columns and transformations (metrics and dimensions) | 
| filters | list containing filter, best built by
 | 
| metric_filters | list containing filter, best built by
 | 
| offset | offset | 
| max_lines | limit | 
Value
query as list
Examples
columns <- tibble::tribble(
  ~column, ~transformation,
  "event_url", "to_path",
  "event_url", "to_domain",
  "website_name", "",
  "timestamp", "",
  "timestamp", "to_hour_of_day",
  "page_views", ""
  )
  build_query(lubridate::ymd("2021-01-01"), lubridate::ymd("2021-01-19"),
              "xxx", columns)
get_app_detail fetching details about an app
Description
get_app_detail fetching details about an app
Usage
get_app_detail(token, app)
Arguments
| token | login token generated by  | 
| app | app id, see  | 
Value
data.frame with details about the app
get_apps_list fetch all apps
Description
get_apps_list fetch all apps
Usage
get_apps_list(token)
Arguments
| token | login token generated by  | 
Value
data.frame
Convert column-type according to column_name
Description
Convert column-type according to column_name
Usage
get_column_type(column_name, timestamp_to_date = TRUE)
Arguments
| column_name | string | 
| timestamp_to_date | boolean convert timestamp to date | 
Value
string suggested type of column
get_generic_list fetches all rows of a given api
Description
get_generic_list fetches all rows of a given api
Usage
get_generic_list(token, offset, api_endpoint, columns, datetime_columns)
Arguments
| token | login token generated by  | 
| offset | defailt 0, integer, where to start fetching usergroups | 
| api_endpoint | string with api endpoint | 
| columns | vector of strings containing columnnames | 
| datetime_columns | vector of strings containing columnnames which are converted to datetime | 
Value
data.frame
Fetch login token
Description
Fetch login token
Usage
get_login_token(credentials)
Arguments
| credentials | List with fields client_id, client_secret and url | 
Value
List with login_token
get_metasites_list
Description
get_metasites_list
Usage
get_metasites_list(token)
Arguments
| token | login token generated by  | 
Value
data.frame
get_permissions_for_app
Description
get_permissions_for_app
Usage
get_permissions_for_app(token, app)
Arguments
| token | login token generated by  | 
| app | app id, see  | 
Value
data.frame
get_permissions_for_metasite
Description
get_permissions_for_metasite
Usage
get_permissions_for_metasite(token, metasite)
Arguments
| token | login token generated by  | 
| metasite | app id, see  | 
Value
data.frame
get_test_credentials getting credentials for testing
Description
Fills credentials out of ENV into a list
Usage
get_test_credentials()
Value
list
get_usergroup_members
Description
get_usergroup_members
Usage
get_usergroup_members(token, usergroup_id)
Arguments
| token | login token generated by  | 
| usergroup_id | usergroup (see  | 
Value
data.frame
get_usergroups_list fetch all usergroups
Description
get_usergroups_list fetch all usergroups
Usage
get_usergroups_list(token)
Arguments
| token | login token generated by  | 
Value
data.frame
get_users_list fetch all users
Description
get_users_list fetch all users
Usage
get_users_list(token)
Arguments
| token | login token generated by  | 
Value
data.frame
is_column_a_metric Checks if column_name indicates numeric values Uses https://developers.piwik.pro/en/latest/custom_reports/columns.html
Description
is_column_a_metric Checks if column_name indicates numeric values Uses https://developers.piwik.pro/en/latest/custom_reports/columns.html
Usage
is_column_a_metric(column_name)
Arguments
| column_name | string | 
Value
boolean
Ask package specific question during release-process
Description
Ask package specific question during release-process
Usage
release_questions()
Value
vector of strings
Send the query and receive the result
Description
Send the query and receive the result
Usage
send_query(
  query,
  token,
  use_csv = TRUE,
  fetch_by_day = FALSE,
  api = "query",
  caching = FALSE,
  caching_dir = "cache",
  convert_types = TRUE
)
Arguments
| query | list generated by  | 
| token | login token generated by  | 
| use_csv | logical to choose whether to fetch data via extra csv-request | 
| fetch_by_day | logical fetch data day by day | 
| api | API endpoint ("query", "sessions", "events") | 
| caching | logical Set TRUE to enable caching | 
| caching_dir | character Set directory for saving caching data, default cache | 
| convert_types | logical guess type of columns and set them | 
Value
result as tibble
Send the query and receive the result
Description
Send the query and receive the result
Usage
send_query_single(query, token, use_csv, api, caching, caching_dir)
Arguments
| query | list generated by build_query() | 
| token | login token | 
| use_csv | logical to choose whether to fetch data via extra csv-request | 
| api | API endpoint (query, sessions, events) | 
| caching | logical Set TRUE to enable caching | 
| caching_dir | character Set directory for saving caching data | 
Value
result as list with values data and meta