Product Management 9 min read

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.

Beike Product & Technology
Beike Product & Technology
Beike Product & Technology
Effective Reading Duration and Screen Count Metrics for Mobile App Content

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.

event trackingmobile appproduct analyticsdata aggregationreading metrics
Beike Product & Technology
Written by

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.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.