Amplitude(分析ツール)におけるイベント分類・データ監査・ガバナンス(管理・統治)ベストプラクティスの信頼できる情報源です。 **次のような場合に使用:** - イベントトラッキング計画、命名規則、プロパティ(データ属性)標準、データ品質、廃止ワークフロー(処理手順)の作成・検証・監査・スコアリング、または改善提案が必要なとき **対応範囲:** 命名ルール、プロパティ標準、スコアリングフレームワーク(評価の枠組み)、メタデータの安全な操作、廃止手順、AI対応性ガイダンスをカバーしています。
Source of truth for event taxonomy generation, data auditing, and governance best practices in Amplitude. Use when an agent needs to create, validate, audit, score, or recommend improvements to event tracking plans, naming conventions, property standards, data quality, or deprecation workflows. Covers naming rules, property standards, scoring frameworks, safe metadata operations, deprecation procedures, and AI readiness guidance.
Six principles govern all taxonomy work:
All taxonomy governance follows a four-stage loop:
These are different problems requiring different solutions:
Billing models — know which applies before advising:
What customers usually mean:
What actually reduces each:
| Goal | Action | Reduces Volume? | Reduces Type Count? |
|---|---|---|---|
| Reduce volume | Block event | Yes | No |
| Reduce volume | Delete event | Yes | Yes |
| Reduce type count | Delete event/property/group type | — | Yes |
| Reduce type count | Block event | No | No |
| Reduce type count | Hide event | No | No |
Key rules:
| Status | Meaning | Can Edit Metadata? |
|---|---|---|
| Planned | In tracking plan; not yet instrumented | Yes |
| Live | Actively receiving data | Yes |
| Blocked | Stops new ingestion; historical data accessible | Yes |
| Unexpected | Receiving data but NOT in tracking plan | No — must add to tracking plan first |
| Deleted | Stops ingestion; removed from new-chart dropdowns | No — must restore first |
Unexpected events have special restrictions. No metadata can be updated until the event is added to the tracking plan. When you encounter Unexpected events:
Activity state is NOT a deprecation signal. An event marked Inactive is behaving as intended.
Actual deprecation signals:
| Signal | Interpretation |
|---|---|
| No recent volume | Event has gone stale |
| No recent queries | Event is unused |
| Both together | Strong deprecation candidate |
Planned events: Zero volume and queries are expected — evaluate by age, name collisions with Live events, and test-like names instead.
None reduce event volume. Each has distinct behavior:
ce: prefix, type = custom): Logical combinations of underlying events for analysis convenience. The underlying events still exist and fire independently. Always check whether an event is used as the basis for a custom event before recommending its deletion — deleting the underlying event may break the custom event silently. Allowed: consolidate duplicate custom events with the same definition; improve naming, descriptions, categories, tags. Never claim that removing a custom event reduces event volume.ce: prefix, type = labeled): Designed for use with Autocapture, distinguished from custom events by a separate metadata flag. Adding/deleting does not impact volume.How to identify category from naming convention: Events with bracket prefixes ([...]) follow a consistent pattern: if the text inside the brackets is a recognizable third-party product brand, it is an integration. If not, it is an Amplitude system event.
Amplitude system events ([Amplitude], [Guides-Surveys], [Experiment], etc.): Critical to platform functionality. Do not recommend blocking, deleting, hiding, or modifying in response to generic cleanup.
Integration-prefixed data ([Appboy], [Adjust], [Intercom], etc.): Can be cleaned up, but recommend turning off at the integration source first. Lower priority than native events.
Experiment data: Do not recommend TTLs or automatic deletion. Deleting breaks historical experiment interpretation.
Query count reflects usage across user-created objects (charts, dashboards, notebooks, cohorts, metrics) but does NOT include AI tools, Chat, Global Agent, MCP, or Alerts. Zero-query is a strong signal to review, not a definitive signal to act.
Three key patterns:
| Pattern | Definition | Action |
|---|---|---|
| Stale event | Has ingested before, but volume stopped | Confirm with customer before deprecating |
| Test event | first seen = last seen, single day | Strong deprecation candidate; confirm first |
| Firing but unqueried | Has volume, zero queries | Flag for review, not immediate removal |
Safe to act on: No volume for 6-12 months. Even if query activity exists, those queries return zero results.
Frame metadata and cleanup work as AI readiness improvements. Every AI feature selects events by evaluating the visible taxonomy — taxonomy quality directly determines AI output quality.
Flag these as AI quality issues:
Event description structure (in order):
Property descriptions: Start with a clear definition, then include example values. Example: "The category of the product the user viewed. Examples: 'electronics', 'apparel', 'home & garden'."
AI readiness at instrumentation time:
AI Controls recommendations:
Reading and analysis operations carry no risk — be autonomous and decisive. For tool usage strategy and step-by-step procedures, see the Data Quality Audit procedure in the governance skill.
Before/after confirmation required for all writes. Never auto-apply. Only update confirmed items — do not extend to similar items based on pattern inference.
Per-field defaults:
Restrictions:
When writes fail due to permissions:
Deprecation must always follow a phased process. For the step-by-step procedure, see the governance skill's Deprecation Workflow.
Never:
Format: [Object] [Past-Tense Verb] in Title Case
| Good | Bad | Why |
|---|---|---|
Song Played |
Play Song |
Past tense = completed action |
Form Submitted |
Submit Form |
Noun-first = scannable, sortable |
Product Added |
product added, product_added, productAdded |
Amplitude treats different casings as separate events — always use Title Case, not snake_case or camelCase |
Consistency is the top priority. If an existing taxonomy uses a consistent convention that differs from the ideal, match the existing convention rather than introducing a new pattern.
User perspective, not system perspective:
Message Sent (user sent) not Message Delivered (system delivered)Purchase Completed (user completed) not Payment Processed (system processed)Specificity balance — one event + properties, not many events:
Order Completed with property payment_methodCredit Card Order Completed, Apple Pay Order CompletedCross-platform consistency: Same user action = same event name across Web, iOS, Android. Platform differences go in a platform property.
One action = one event name. No duplicates across the codebase.
Autocapture-first: Do not recommend custom events for anything already captured by Autocapture: Page Viewed, Element Clicked, Element Changed, Form Started, etc.
snake_case for all property namespayment_type not type, error_message not messagevideo_duration_seconds, file_size_mb, price_usd[event_name]_at (e.g., product_added_at)product_name must be product_name on every event — not name, prod_name, etc.login_method and payment_method, not generic method for both| Type | Format | Example |
|---|---|---|
| IDs | Always string | "user_id": "12345" not 12345 |
| Counts/amounts | Number | "order_total": 59.99 |
| Flags | Boolean | "is_premium": true |
| Timestamps | ISO 8601 string | "2024-03-10T14:30:00Z" |
| Enums/status | String | "status": "In Progress" |
| Null handling | Pick one approach per property | Omit, null, or sentinel string like "Unknown" — never mix. Using an explicit sentinel string lets you distinguish intentionally unavailable values from instrumentation bugs. Inconsistent null handling is one of the most common causes of incorrect property filters and broken funnels. |
device_id only. Do NOT set user_id.user_id per verified user. Never set before login/verification.insert_id per event for deduplication (7-day window).session_id within a session; for server-side, use the UNIX timestamp of the first session event.Error Encountered event with error_type/error_category propertyproduct_engagement (items in this action) + cart_contents (full cart snapshot) arraysorg_id, account_id)product_id) across all events in a funnelUse the Amplitude category metadata field — don't embed prefixes in event names. Common categories:
| Category | Purpose | Examples |
|---|---|---|
| Lifecycle | User journey milestones | Signup Completed, Trial Started, Subscription Cancelled |
| Feature | Core product functionality | Task Created, Document Edited, Report Generated |
| Engagement | Navigation and UI interaction | Page Viewed, Button Clicked, Search Performed |
| Transaction | Revenue events | Purchase Completed, Checkout Started, Refund Requested |
| System | Technical health | Error Occurred, API Request Completed, Timeout Occurred |
| Growth | Acquisition and referral | Invite Sent, Share Completed, Referral Reward Earned |
Assignment heuristics:
[Appboy], [Adjust], etc.) may not fit neatly — assign System or Growth based on the integration's purpose, or leave unassigned.Three dimensions:
| Level | Points | Definition | Examples |
|---|---|---|---|
| HIGH | 3 | Name is ambiguous — analyst cannot reliably interpret it | Jargon, acronyms, blob words, confusable names |
| MEDIUM | 2 | Name is interpretable but taxonomy is messier for it | Convention outliers, unexpected events not on plan |
| LOW | 1 | Name is clear; issue is missing polish | Missing description when name is self-explanatory |
Prioritization: Lead with high-impact issues on high-importance events. Stale/test events are quick wins — surface them below real data quality problems.
Health grade: (Total Points Earned / Total Points Possible) x 100%
Allowed (non-destructive, metadata-only, with user approval):
Not allowed:
Default lookback: 180 days.
| Signal | Priority | Action |
|---|---|---|
| Semantically unclear name | HIGH | Add display name + description |
| Missing description (unclear name) | HIGH | Add description following AI readiness formula |
| Semantic duplicate (true — same meaning, different casing) | HIGH | Merge or disambiguate |
| Semantic duplicate (similar — different names, same action) | HIGH | Investigate; merge or disambiguate |
| Zero volume (180 days) | MEDIUM | Investigate before acting |
| Zero queries (180 days) | MEDIUM | Check asset dependencies first |
| Duplicate property across event + user scope | MEDIUM | Clarify correct source of truth |
| Missing description (clear name) | LOW | Add description; deprioritize |
| Missing category | LOW | Add category |
| Naming convention outlier | LOW | Flag for future realignment |
| Unexpected event/property | LOW | Add to plan or block after review |
| Stale (last seen beyond lookback) | LOW | Quick win — schedule for deprecation |
| Single-day (first seen = last seen) | LOW | Quick win — likely test; verify first |
Test/QA artifact (test_, debug_, tmp_, _qa) |
LOW | Quick win — standard deprecation process |
Exception: When customer is near quota, Stale/Single-day/Test signals become elevated priority.
| Metric | Impact |
|---|---|
| % of types at quota limit | HIGH when >90% |
| New types added in last 7 days (spike = possible dynamic value leak) | HIGH if spike |
| Total event volume change in last 7 days | HIGH if unexpected |
| Number of duplicate types by name | HIGH |
| Group types not instrumented (B2B products) | HIGH |
| A/B experiments tracked as events instead of user properties | MEDIUM |
| Events with zero queries in 180 days | MEDIUM |
| Events with zero volume in 180 days | MEDIUM |
| Single-day events | MEDIUM |
| % of live events with descriptions | LOW |
| % of live events with categories | LOW |
| Number of Unexpected events/properties | LOW |
| Naming convention inconsistencies | LOW |
Display names:
| Before | After |
|---|---|
catSelectClick |
Category Selected |
pgVw |
Page Viewed |
ord_compl_v2 |
Order Completed |
usr_prop_acct_tier |
Account Tier |
Descriptions:
| Bad (implementation-focused) | Good (intent + context) |
|---|---|
| "Fired on click handler for nav component" | "Triggered when a customer selects a product category from the navigation menu. Example categories: Electronics, Apparel, Home." |
| "Event fired on submit" | "Triggered when a user completes checkout and confirms their order. Includes all line items, discounts applied, and final order total." |
| "See tracking plan" | "Fired the first time a new user completes onboarding by verifying their email. Fires once per user lifetime only." |
These are the actual Amplitude MCP server tools available for taxonomy work. Tool names must match exactly.
get_amplitude_contextGet information about the current user, organization, and accessible projects. Call this first to discover project IDs.
get_amplitude_context with projectIdGet project-specific settings: time zone, currency, session definition, AI context. Use to understand project configuration before making changes.
search_amp_entities and search_amp_data_taxonomyUse search_amp_entities for charts, dashboards, notebooks, experiments,
cohorts, and other Amplitude content. Use search_amp_data_taxonomy for events
and properties.
manage_amp_data_taxonomyUse action: "get" for workspace settings, including approval workflow status.
Check before writing to the default branch — when approvalWF is "Required",
the user must create a non-default branch first.
manage_amp_eventsUse action: "get" and kind: "event" to retrieve events from a project with
filtering by event types, limit, and cursor pagination. Returns full event
objects including category and active status.
If the connected MCP server's manage_amp_events input schema accepts _client,
every manage_amp_events call made by this skill MUST include this top-level caller
attribution exactly. Otherwise, omit _client.
"_client": { "type": "skill", "skill_name": "taxonomy" }
search_amp_data_taxonomy first to find the event you're looking for.manage_amp_events with action: "get" and
kind: "event" without eventTypes to paginate through all events.eventTypes for precise lookup.Use manage_amp_events with action: "get" and kind: "custom", "labeled",
or "all" to retrieve custom events, labeled (autotrack) events, or both.
eventKind: "_all" — both custom and labeled events (default).eventKind: "custom" — non-autotrack custom events only.eventKind: "labeled" — labeled/autotrack events only.isAutotrack flag, definition, and flattenedDefinition (source event lists).get_transformationsRetrieve data transformations (merge events, merge properties, map property values) from a project. Use to audit data cleaning rules.
get_propertiesRetrieve properties from a project's taxonomy. Use propertyType to select which kind:
propertyType |
What it returns | Key params |
|---|---|---|
event |
Properties for a specific event type | eventType (required) |
user |
User-level properties | sources, name |
derived |
Computed/formula properties | derivedPropertyType, names |
group |
Group properties (e.g., company_name, plan_tier) | groupTypes |
lookup |
CSV lookup table properties | configurationFilter, lookupTableName |
channel |
Traffic source channel properties | names |
persisted |
Event-to-user persisted properties | names |
All property types except event support limit/cursor pagination.
Use manage_amp_events with action: "update" and kind: "event" to update
event metadata: descriptions, display names, categories, official status, and
event names. It operates on the tracking plan.
name exactly (case-sensitive) — not the
displayName. Resolve via manage_amp_events with action: "get" and
kind: "event" first if needed.branchId or branchName to target non-default branches.[Amplitude], [Experiment], etc.) unless explicitly requested.update_propertiesUpdate property metadata (description, official status, category, and/or name). Use propertyType to select which kind:
propertyType |
What it updates | Key params |
|---|---|---|
event |
Event property metadata (global or event-scoped) | metadataScope, eventType (when scope is "event") |
user |
User property metadata | descriptions, isOfficial, categories, newNames |
get_properties first to verify property names and status before updating.Use manage_amp_events with action: "update" and kind: "custom" or
"labeled" to update descriptions, categories, names, official status, and/or
definitions on custom or labeled events.
kind: "event".For step-by-step execution procedures (data quality audits, governance analyses, event verification, deprecation workflows, tracking plan generation, tool usage strategy), see the governance skill.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。