We’ve migrated our documentation to a new site, which means some URLs have changed.
Subscriptions

How Is "Last Active" Calculated and Updated in Piano?


What Updates "Last Active" (and What Doesn't)

Updates "Last Active":
A user's "Last Active" timestamp updates only when Piano receives a pageview hit:

  • Web: A page loads where the Piano script is executed and the user is recognized (authenticated/identified).

  • Mobile apps: A screen/article view must be tracked as a pageview and must include the user identity.

Does not update "Last Active":
These actions do not refresh "Last Active" by themselves:

  • Login / logout events

  • Registration events

  • Session/token refresh events (for example, "User session has been refreshed")

  • Cookie-consent interactions

  • Newsletter clicks that don't result in a tracked pageview (e.g., the page doesn't fully load or the script never executes)

  • Server-side API calls that do not produce front-end pageview tracking

This behavior is by design so "Last Active" reflects content consumption / site usage, not just authentication.

Expected Update Delay

After a qualifying pageview is received, allow 30 minutes to 2 hours for the "Last Active" timestamp to refresh in Piano.

Requirements for the Pageview to Count

To update "Last Active," the pageview must be:

  1. A pageview event

  2. Attributed to the correct user identity

    • Web: the user is recognized by their member identity during the pageview

    • App: the pageview includes a UID or a valid Identity Management JWT

Common Reasons "Last Active" Doesn't Change

If users are clearly authenticating but "Last Active" stays blank or outdated, typical causes include:

  • No pageview after login: The user logs in and exits (or remains on the same view) without a tracked page/screen view afterward.

  • Anonymous tracking: Pageviews are sent without the authenticated identity (UID/JWT not set, set too late, or cleared).

  • Blocked requests: Ad blockers, network restrictions, or device conditions prevent hits from reaching Piano endpoints.

How to Verify Pageviews Are Updating "Last Active"

Confirm last_visit Is Updating in Identity Management

Use /api/v3/publisher/user/get to inspect the user's last_visit.

  • If last_visit is null/0, a qualifying pageview has not been recorded for that user identity.

Confirm Logins Are Happening (Separately from "Last Active")

Use /id/api/v1/publisher/audit/user with action_type=LOGGED_IN to validate authentication events and timestamps.

  • If logins exist but last_visit does not change, focus troubleshooting on pageview tracking and attribution.

Implementation Guidance (Web and Mobile)

  • Ensure that every content view that should count as activity triggers a pageview:

    • Web: The Piano script runs on each relevant page load.

    • Mobile: Call the Piano SDK for each screen/article view.

  • If you're using orchestration libraries (e.g., Composer in an app), ensure your implementation triggers the appropriate execution on user navigation so page/screen views are actually tracked.

If It Still Doesn't Update

If correctly attributed pageviews are visible in reporting and more than 2 hours have passed, gather the following for Piano support to initiate a deeper investigation:

  • User identifier (UID)

  • Exact timestamps of pageviews

  • AID used by the app/web implementation

Last updated: