Effective Reading Duration and Screen Count Metrics for Mobile App Content
The article explains how to define, collect, and calculate effective reading duration and screen count for mobile app H5 content using event timestamps, formulas, fragment reporting, and aggregation methods to improve content quality analysis and visualization.
Effective reading duration and effective reading screen count are two key indicators for evaluating content quality; a high‑quality article should be read attentively, producing reasonable time‑based screen metrics, while unusually high screen counts in short time suggest low engagement.
Formula A – Effective Reading Duration : The raw reading time is the difference between start and stop timestamps, but pauses and background switches must be excluded. Two schemes are proposed:
Scheme 1 calculates EffectiveReadingDuration = (stopTimestamp - startTimestamp) / 1000 - N * pauseDuration , but suffers from missing abnormal stop data.
Scheme 2 fragments the reading session, reporting each valid segment and aggregating later: EffectiveReadingDuration = ((bgTimestamp - startTimestamp) + (bgTimestamp - fgTimestamp) * N + (stopTimestamp - fgTimestamp)) / 1000 , where N is the number of background‑foreground cycles.
Formula B – Effective Reading Screen Count : EffectiveScreenCount = ceil(pageMaxOffset / screenHeight) . To avoid data loss when the app is backgrounded or killed, a fallback report should be sent at each background event, then de‑duplicated during analysis.
Event Design : Four timestamps are defined – A (page show), B (app background), C (app foreground), D (page hide). Using these events, the metrics are computed as:
EffectiveReadingDuration = ((Btime - Atime) / 1000 + (Btime - Ctime) / 1000 * N + (Dtime - Ctime) / 1000)
EffectiveScreenCount = ceil(pageMaxOffset / screenHeight)
Reporting Timing : Fragment timestamps start at each foreground event (C) and are reported at background (B) or stop (D) events, allowing both metrics to be sent in a single request.
Problem Solving :
1. To accumulate fragment durations, a unique UUID identifies a reading session; each fragment reports { dura: 20, screen: 4, uuid: "UFD6N3KI7LP" } . Summing dura for the same UUID yields the total effective duration.
2. To deduplicate screen counts, an additional status field indicates whether the report originates from a background or stop event. The maximum screen value for a given UUID, regardless of status, is taken as the effective screen count.
Example code snippets:
action: { dura: 20, screen: 4, uuid: "UFD6N3KI7LP", status: "事件B" }
action: { dura: 30, screen: 9, uuid: "UFD6N3KI7LP", status: "事件B" }
action: { dura: 30, screen: 8, uuid: "UFD6N3KI7LP", status: "事件D" }
Analysis Summary : By defining clear events, applying the two formulas, fragmenting and aggregating data, and handling duplicate screen reports, the effective reading duration and screen count can be reliably measured and visualized on dashboards via SQL aggregation and Odin configuration.
Beike Product & Technology
As Beike's official product and technology account, we are committed to building a platform for sharing Beike's product and technology insights, targeting internet/O2O developers and product professionals. We share high-quality original articles, tech salon events, and recruitment information weekly. Welcome to follow us.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.