Initial commit
This commit is contained in:
@@ -0,0 +1,575 @@
|
||||
# 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 |
|
||||
|
||||
Reference in New Issue
Block a user