576 lines
13 KiB
Markdown
576 lines
13 KiB
Markdown
# 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 |
|
|
|