
Ingest telemetry data and identify UX friction points
bid_ingest_telemetry.Rd
This function ingests telemetry data from shiny.telemetry output (SQLite or JSON) and automatically identifies potential UX issues, translating them into BID framework Notice stages. It analyzes user behavior patterns to detect friction points such as unused inputs, delayed interactions, frequent errors, and navigation drop-offs.
Usage
bid_ingest_telemetry(path, format = NULL, thresholds = list())
Arguments
- path
File path to telemetry data (SQLite database or JSON log file)
- format
Optional format specification ("sqlite" or "json"). If NULL, auto-detected from file extension.
- thresholds
Optional list of threshold parameters: - unused_input_threshold: percentage of sessions below which input is considered unused (default: 0.05) - delay_threshold_seconds: seconds of delay considered problematic (default: 30) - error_rate_threshold: percentage of sessions with errors considered problematic (default: 0.1) - navigation_threshold: percentage of sessions visiting a page below which it's considered underused (default: 0.2) - rapid_change_window: seconds within which multiple changes indicate confusion (default: 10) - rapid_change_count: number of changes within window to flag as confusion (default: 5)
Value
A list containing bid_stage objects for each identified issue in the "Notice" stage. Each element is named by issue type (e.g., "unused_input_region", "delayed_interaction", etc.)
Examples
if (FALSE) { # \dontrun{
# Analyze SQLite telemetry database
issues <- bid_ingest_telemetry("telemetry.sqlite")
# Analyze JSON log with custom thresholds
issues <- bid_ingest_telemetry(
"telemetry.log",
format = "json",
thresholds = list(
unused_input_threshold = 0.1,
delay_threshold_seconds = 60
)
)
# Use results in BID workflow
if (length(issues) > 0) {
# Take first issue and continue with BID process
interpret_result <- bid_interpret(
previous_stage = issues[[1]],
central_question = "How can we improve user engagement?"
)
}
} # }