Files
gh-henkisdabro-wookstar-cla…/skills/ga4-custom-dimensions/references/dimension-limits-quotas.md
2025-11-29 18:32:40 +08:00

13 KiB

GA4 Dimension Limits, Quotas & Planning Guide

Standard GA4 Property Quotas

Dimension Quotas

Scope Type Limit GA4 360 Limit
Event-scoped custom dimensions 50 125
User-scoped custom dimensions 25 100
Item-scoped custom dimensions 10 25

Metric Quotas

Metric Type Limit GA4 360 Limit
Standard custom metrics 50 125
Calculated metrics 5 50

Total Dimension Budget

Standard GA4:

  • Maximum total: 50 + 25 + 10 = 85 custom dimensions

GA4 360:

  • Maximum total: 125 + 100 + 25 = 250 custom dimensions

Understanding Quota Impacts

Event-Scoped Dimensions (50 Max in Standard GA4)

Typical usage distribution:

High priority (essential):     5-10 dimensions
Medium priority (important):   10-15 dimensions
Low priority (nice-to-have):   5-10 dimensions
Testing/experimental:          5-10 dimensions
Unused/deprecated:             5-10 dimensions
Total:                         30-55 dimensions (likely over quota)

User-Scoped Dimensions (25 Max in Standard GA4)

Typical usage distribution:

Subscription/plan tier:  1 dimension
Customer segment:        1 dimension
Account status:          1 dimension
Company characteristics: 3-5 dimensions
Behavioral attributes:   3-5 dimensions
Preferences:             3-5 dimensions
Unused/deprecated:       3-5 dimensions
Total:                   15-25 dimensions (likely at/near quota)

Item-Scoped Dimensions (10 Max in Standard GA4)

Typical usage distribution:

Color/variant:     1-2 dimensions
Size:              1 dimension
Material/fabric:   1 dimension
Supplier/vendor:   1 dimension
Quality tier:      1 dimension
Unused/test:       2-3 dimensions
Total:             8-10 dimensions (likely at quota)

Quota Management Strategy

When You Hit Quota

Immediate:

  1. Stop creating new dimensions temporarily
  2. Audit existing dimensions for unused ones
  3. Delete low-priority/test dimensions
  4. Document deletions

Medium-term:

  1. Consolidate similar dimensions
  2. Archive less-used dimensions (delete then document)
  3. Consider GA4 360 upgrade if quota consistently exceeded

Long-term:

  1. Plan which dimensions are truly essential
  2. Establish dimension governance policies
  3. Regular quarterly reviews of dimension usage

Prioritization Framework

Tier 1: Keep (Essential)

  • ✓ Required for critical business reports
  • ✓ Used by multiple teams
  • ✓ Part of regulatory/compliance reporting
  • ✓ Cannot be replaced by built-in dimensions

Tier 2: Keep (Important)

  • ✓ Used regularly in analysis
  • ✓ Part of team dashboards
  • ✓ Supports strategic decisions
  • ✓ Actively send data (not dormant)

Tier 3: Review (Optional)

  • ? Used occasionally
  • ? Experimental in nature
  • ? Data doesn't appear in reports
  • ? Can be replicated from other data

Tier 4: Delete (Candidates)

  • ✗ Never used in reports
  • ✗ Data not being sent (implementation missing)
  • ✗ Duplicate of existing dimension
  • ✗ Test/experimental dimension
  • ✗ Parameter no longer tracked

Audit Checklist

Run quarterly to identify deletable dimensions:

For each dimension, check:

[ ] Has data in reports?
    NO → Candidate for deletion

[ ] Used by any teams?
    NO → Candidate for deletion

[ ] Parameter still being sent?
    NO → Candidate for deletion

[ ] Duplicate of another dimension?
    YES → Delete duplicate

[ ] Actively analyzed?
    NO → Candidate for deletion

Parameter Limits (Not Quota-Based)

These are separate from dimension quotas - they apply to all events:

Event Parameter Limits

Aspect Limit Notes
Parameters per event 25 max Total count of all parameters
Parameter name length 40 characters Cannot be longer
String parameter value 100 characters Most parameters
page_title value 300 characters Special exception
page_referrer value 420 characters Special exception
page_location value 1000 characters Special exception

Items Array Limits

Aspect Limit Notes
Items per event 27 max Maximum products in one transaction
Item parameters 10+ available Predefined + custom
Item parameter value 100 characters Standard limits apply

User Property Limits

Aspect Limit Notes
User properties per user 100 max Total count across all
Property name length 40 characters Cannot be longer
Property value length 100 characters Standard limits

Quota Warnings & Enforcement

Before Hitting Quota

GA4 provides warnings:

  • No explicit warning currently (as of 2024)
  • Monitor quota usage in Admin → Custom Definitions
  • List shows all dimensions with counts

When At Quota

Behavior:

  • Cannot create new dimension of that scope
  • Error message: Cannot proceed
  • Must delete existing dimension first

When Over Quota (Impossible)

By design: GA4 prevents exceeding quota

  • Will not let you create if would exceed
  • Must delete first

Capacity Planning Worksheet

Use this worksheet to plan dimensions before implementation:

Event-Scoped Dimensions Planning

Total quota: 50 (Standard GA4) / 125 (GA4 360)

Category 1: Form Tracking
  [ ] form_name
  [ ] form_id
  [ ] form_type
  Subtotal: 3

Category 2: Button/Link Tracking
  [ ] button_name
  [ ] link_destination
  [ ] link_type
  Subtotal: 3

Category 3: Video Tracking
  [ ] video_title
  [ ] video_quality
  [ ] video_category
  Subtotal: 3

Category 4: Error Tracking
  [ ] error_type
  [ ] error_code
  Subtotal: 2

Category 5: [Your Category]
  [ ] dimension_name
  Subtotal: X

TOTAL PLANNED: 11+ dimensions
QUOTA AVAILABLE: 50
BUFFER REMAINING: 39

User-Scoped Dimensions Planning

Total quota: 25 (Standard GA4) / 100 (GA4 360)

Category 1: Subscription/Tier
  [ ] subscription_tier
  [ ] trial_status
  Subtotal: 2

Category 2: Customer Type
  [ ] customer_segment
  [ ] customer_type
  Subtotal: 2

Category 3: Account Status
  [ ] account_status
  [ ] account_age
  Subtotal: 2

Category 4: Company Information
  [ ] company_size
  [ ] industry
  [ ] company_country
  Subtotal: 3

Category 5: Preferences
  [ ] preferred_language
  [ ] communication_preference
  Subtotal: 2

Category 6: [Your Category]
  [ ] property_name
  Subtotal: X

TOTAL PLANNED: 11+ dimensions
QUOTA AVAILABLE: 25
BUFFER REMAINING: 14

Item-Scoped Dimensions Planning

Total quota: 10 (Standard GA4) / 25 (GA4 360)

Category 1: Product Attributes
  [ ] item_color
  [ ] item_size
  Subtotal: 2

Category 2: Supplier/Source
  [ ] supplier
  [ ] warehouse_location
  Subtotal: 2

Category 3: Product Quality
  [ ] quality_tier
  Subtotal: 1

Category 4: [Your Category]
  [ ] property_name
  Subtotal: X

TOTAL PLANNED: 5+ dimensions
QUOTA AVAILABLE: 10
BUFFER REMAINING: 5

Optimization Strategies

Strategy 1: Consolidation

Instead of: 3 separate dimensions (button_text, button_id, button_type)

Use: 1 dimension (button_identifier = "type_id_text")

Benefit: Saves 2 dimensions, still trackable

Strategy 2: Hierarchy Reduction

Instead of: item_category, item_subcategory, item_subsubcategory (3 dimensions)

Use: Built-in item_category (predefined) + custom item_category2 (predefined)

Benefit: Saves 1 dimension using pre-built fields

Strategy 3: Metric instead of Dimension

Instead of: Dimension "video_watch_percentage"

Use: Metric minutes_watched (numeric) + Formula

Benefit: Dimensions for categorization, metrics for calculation

Strategy 4: Segment in Exploration

Instead of: User-scoped dimension "cohort_type"

Use: Build temporary segment in Exploration for analysis

Benefit: Saves dimension quota, still enables analysis


GA4 360 Considerations

When to Upgrade to GA4 360

Quota benefits:

  • 2.5x more event-scoped dimensions (50 → 125)
  • 4x more user-scoped dimensions (25 → 100)
  • 2.5x more item-scoped dimensions (10 → 25)

Other GA4 360 benefits:

  • Increased custom metric quotas
  • Extended data retention (up to 50 months)
  • Advanced features (data-driven attribution by default)
  • Data import capabilities
  • Streaming BigQuery export
  • Advanced support

When quota-only upgrade makes sense:

  • More than 85 total dimensions needed
  • Multiple teams each needing own dimensions
  • Complex ecommerce tracking (20+ item attributes)
  • Enterprise with many business units

Common Quota Mistakes to Avoid

Mistake 1: Creating Similar Dimensions

❌ WRONG:
  - button_name
  - button_text
  - button_label
  (These are the same thing!)

✓ CORRECT:
  - button_name
  (Use consistently)

Prevention: Establish naming standards before implementation

Mistake 2: Creating Dimensions for Unique Values

❌ WRONG:
  - user_email (millions of unique values)
  - session_id (unique per session)
  - timestamp (continuous values)
  (High cardinality, not useful for analysis)

✓ CORRECT:
  - user_tier (few values)
  - user_region (manageable values)
  - signup_month (grouped time)

Prevention: Only dimensions with <100 unique values

Mistake 3: Not Deleting Test Dimensions

❌ WRONG:
  - test_dimension
  - temp_parameter
  - dev_test
  - debugging_param
  (Wastes quota)

✓ CORRECT:
  - Delete test dimensions after verification
  - Use separate test GA4 property

Prevention: Track test vs. production dimensions

Mistake 4: Creating Redundant Dimensions

❌ WRONG:
  - page_title (already built-in!)
  - device_category (already built-in!)
  - user_id (use User ID feature instead)

✓ CORRECT:
  - Review built-in dimensions first
  - Only create custom when necessary

Prevention: Audit built-in dimensions before creating custom


Quota Governance Policy (Template)

Organizations should establish policies:

Dimension Creation Policy

Before Creation:

  1. Business justification required
  2. Dimensions reviewed by analytics lead
  3. Check if built-in dimension exists
  4. Verify quota available
  5. Document in shared list

After Creation:

  1. Register properly (scope, naming)
  2. Implement in code
  3. Verify in DebugView
  4. Document in team wiki
  5. Add to dashboard/report

Dimension Review Schedule

Quarterly Review (Every 3 months):

  1. List all custom dimensions
  2. Check which have data
  3. Check which are used
  4. Mark for deletion if unused
  5. Archive documentation

Annual Audit (Every 12 months):

  1. Complete dimensions review
  2. Consolidation opportunities
  3. Quota forecasting
  4. GA4 360 evaluation
  5. Update governance policy

Naming Standards

All Event-Scoped Dimensions:

  • Format: [action]_[object]
  • Examples: button_name, form_id, video_title

All User-Scoped Dimensions:

  • Format: [attribute] or user_[attribute]
  • Examples: subscription_tier, customer_segment

All Item-Scoped Dimensions:

  • Format: item_[attribute]
  • Examples: item_color, item_size

Quota Tracking Template

Keep this updated to monitor quota usage:

Event-Scoped Tracking

Date: 2024-11-10
Total Created: 35 / 50

High Priority (Keep):
  - form_name (active)
  - button_name (active)
  - error_type (active)
  - page_section (active)
  Subtotal: 4

Medium Priority (Keep):
  - video_title (light use)
  - link_type (monthly analysis)
  Subtotal: 2

Low Priority (Review):
  - test_param (no data)
  - old_tracking (deprecated)
  - experimental_dimension (unused)
  Subtotal: 3

Deletion Candidates: 3
Recommended Action: Delete 3, keep 32

Next Review: 2025-02-10 (Quarterly)

User-Scoped Tracking

Date: 2024-11-10
Total Created: 22 / 25

In Use:
  - subscription_tier (critical)
  - customer_segment (critical)
  - account_status (important)
  - company_size (important)
  - industry (important)
  - preferred_language (used)
  - loyalty_status (used)
  Subtotal: 7

Unused/Deprecated:
  - old_tier_system (no data)
  - test_property (testing only)
  Subtotal: 2

Buffer Remaining: 3
Recommendation: Delete old_tier_system, keep others

Next Review: 2025-02-10

Summary: Quick Decision Matrix

Need to create a custom dimension? Use this:

Question Yes No
Is it essential for business reporting? Keep Consider deletion
Is there a built-in dimension for this? Use built-in Create custom
Is there quota available? Create Delete other first
Will it have <100 unique values? Proceed Rethink approach
Is it for event-specific context? Event scope Use different scope
Is it for all user events? User scope Use different scope
Is it for products? Item scope Use different scope
Do we have team consensus? Create Get approval first