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:
- Stop creating new dimensions temporarily
- Audit existing dimensions for unused ones
- Delete low-priority/test dimensions
- Document deletions
Medium-term:
- Consolidate similar dimensions
- Archive less-used dimensions (delete then document)
- Consider GA4 360 upgrade if quota consistently exceeded
Long-term:
- Plan which dimensions are truly essential
- Establish dimension governance policies
- 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:
- Business justification required
- Dimensions reviewed by analytics lead
- Check if built-in dimension exists
- Verify quota available
- Document in shared list
After Creation:
- Register properly (scope, naming)
- Implement in code
- Verify in DebugView
- Document in team wiki
- Add to dashboard/report
Dimension Review Schedule
Quarterly Review (Every 3 months):
- List all custom dimensions
- Check which have data
- Check which are used
- Mark for deletion if unused
- Archive documentation
Annual Audit (Every 12 months):
- Complete dimensions review
- Consolidation opportunities
- Quota forecasting
- GA4 360 evaluation
- 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]oruser_[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 |