What problem am I trying to solve?
As an org admin, I need a reliable way to count actual dataset downloads for hosted Feature Services over a chosen date range (and ideally broken down by format/day/actor). Current Usage views focus on requests/views and don’t surface file-based downloads for hosted web layers, which makes it hard to report dataset uptake to stakeholders and product owners.
Why this matters
Product metrics: show which datasets are actually being taken offline/consumed.
Operational planning: anticipate load from large exports/replicas.
Governance & audit: evidence of data distribution to partners/clients.
Funding/ROI: justify maintenance of popular datasets; retire unused ones.
Proposal (what I’d like to see)
New “Downloads” metric for hosted web layers (Feature/Map/Scene/Image), available on each item’s Usage tab and via org Reports:
Counts events that create a downloadable file or replica, including:
Item → Export Data (SHP/FGDB/CSV/GeoJSON/…);
FeatureServer/createReplica (offline/FGDB/SQLite);
Item /data?...download=1;
FeatureServer/query when f=csv|geojson|xlsx|kml (server-generated file);
ArcGIS Hub/Open Data downloads (site and API-initiated).
Breakdowns: by item, layer, format, date, actor (user/app when available), source (Item UI, API, Hub).
Charts + CSV export, with the same retention horizon as Usage (or longer).
Standardised event semantics in Portal History
Introduce a canonical event type (e.g., itemDownload) with fields: itemId, layerId, format, source (Item/HUB/API), actor, userOrgId, clientId/referrer, bytes, duration, ip (optional).
Ensure events include itemId even when initiated by service URL to avoid ambiguous attribution (especially for Feature Layer Views).
Provide a helper in the REST/Python API to resolve view → source service.
Organization-level “Download report”
A new Single report type alongside Activity/Credits/Item View Count/Service Usage, returning one row per download event and a summary sheet (per item & per format).
Hub integration
Surface Hub/Open Data downloads in the same metric so admins don’t need to stitch GA4/Matomo with Portal History.
Optional toggle to include/exclude anonymous Hub traffic, with privacy-safe aggregation.
Admin controls & definitions
Clear definition of what does/doesn’t count (exclude JSON table queries used by Map Viewer/Dashboards; count only server-generated files/replicas).
Configurable retention and a way to archive/export beyond the default horizon.
Who would use this?
Admins, data product owners, Open Data teams, and anyone reporting dataset adoption/usage to funders or internal stakeholders.
Acceptance criteria (examples)
Exporting a layer to File Geodatabase increments the item’s Downloads count with format=fgdb.
Creating a replica via REST increments format=replica with bytes and actor.
Triggering a Hub dataset download increments the same counter and attributes the source to Hub.
Org Download report lists these events and totals per item, per day.
Nice-to-have
API endpoints in Admin & Python API to query per-item download stats.
Distinguish unique downloaders (when authenticated) vs total downloads.
Per-layer granularity for multi-layer services.
Environment
ArcGIS Online (hosted). Admin privileges. Items: hosted Feature Service / Feature Layer (hosted) & Feature Layer Views.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.