Data Governance
The Data Governance page (sidebar Settings → Data Governance) is the single place to confirm Beacon is receiving the account and license context you expect — and to find the cardinality and dead-letter issues you’d rather not learn about the hard way. Use it during integration, after every SDK update, and when investigating why an Accounts or Licenses report looks off.
Prerequisites
- Plan: Business or Enterprise (Trial gets access during evaluation). Starter and Pro see the upgrade paywall.
- Permission:
view_accounts.
Page layout
The page is stacked top-to-bottom:
1. Coverage cards
Two large tiles:
- Account coverage % — share of events in the window that carry an
account_id. Anything below ~80% suggests your SDK isn’t callingSetAccount(...)consistently. - License coverage % — same metric for
license_id.
A small window selector to the right toggles between 30 and 90 days.
2. Coverage time-series
A line chart of account and license coverage over the selected window so you can spot regressions tied to a release date. A new SDK version that forgets to call SetAccount after login shows up as a coverage drop.
3. Top missing context
A table of (product, product_version) pairs ranked by events missing context. Useful for identifying the specific release where instrumentation broke.
4. Dead-letter violations
Recent events Beacon rejected with account/license-specific codes:
| Code | Meaning |
|---|---|
invalid_account_id | account_id was empty after trim, contained control characters, or exceeded 256 chars. |
invalid_license_id | Same for license_id. |
reserved_property_key | The event sent account_id / license_id (or one of the aliases — accountId, account, licenseId, license) inside the properties object instead of at the top level. |
Each row expands to show the rejected payload (truncated) and a one-paragraph fix. The same data is on the Invalid Events page, filtered to this subset.
5. High-cardinality warnings
Two non-blocking notices when Beacon detects a likely misuse pattern over the window:
- High-cardinality accounts (ED-1136). Fires when
distinct accounts > 50% of distinct actors. Usually means you accidentally setaccount_idto the same value asactor_idor to a per-device ID. The Accounts page becomes near-useless under this pattern, so the warning is loud. - High-cardinality licenses (ED-1142). Fires when
distinct licenses > 50% of distinct actors(with a small-sample floor:≥ 10 actors AND ≥ 5 licenses). Usually means you’re using per-user / per-seat licensing. Beacon supports it; the warning just nudges you toward per-contract IDs for richer analytics. See Licenses → Modeling licenses.
Each warning includes the threshold rule and a code snippet illustrating the recommended pattern.
6. Recommended SDK snippet
A short code example showing the per-contract SetLicense("sub_acme_team_annual") form. Pick this up as the model when wiring a new product, not the per-user pattern.
7. Privacy note
A reminder that account_id and license_id should be pseudonymous, customer-controlled identifiers. Don’t send names, emails, file paths, or any field that would tie an actor to a real person. Beacon’s SDKs deliberately do not collect this data automatically; everything you see in account/license context, you chose to send.
Common questions
My coverage is 0% but I’m clearly sending events. You haven’t started calling SetAccount / SetLicense yet. The events arrive, they just have no account/license context. Beacon does not extract these fields from event properties — they have to be top-level payload fields, which means using the SDK’s typed methods or the account_id / license_id body fields on the REST API directly.
Coverage dropped after a release. Cross-reference the Top missing context table — it usually points at the new product_version. Common cause: a refactor moved the SetAccount call to a code path that doesn’t always run.
Why is the high-cardinality warning still showing after I fixed it? Coverage uses a rolling 30-day window. The warning persists until enough fixed-up traffic ages in to push the ratio below the threshold. You can verify the fix faster with Event Explorer filtered to the new product_version.
Can I dismiss these warnings? Not in v1. They’re small and informational; we’d rather you see them every visit than have them silently disabled while the underlying problem persists.
Next
→ Glossary for definitions of Account, License, Actor, and Count by.