543 lines
15 KiB
Markdown
543 lines
15 KiB
Markdown
# Custom Dimension Registration Templates
|
|
|
|
Copy and customize these templates for your custom dimensions registration.
|
|
|
|
---
|
|
|
|
## Template 1: Event-Scoped Dimension - Form Tracking
|
|
|
|
### Code Implementation
|
|
|
|
```javascript
|
|
// On form submit event
|
|
document.querySelectorAll('form').forEach(form => {
|
|
form.addEventListener('submit', function(e) {
|
|
// Get form details
|
|
const formName = this.getAttribute('name') || this.getAttribute('id');
|
|
const formId = this.getAttribute('id');
|
|
|
|
// Send to GA4
|
|
gtag('event', 'form_submit', {
|
|
'form_name': formName,
|
|
'form_id': formId,
|
|
'form_destination': this.getAttribute('action')
|
|
});
|
|
});
|
|
});
|
|
```
|
|
|
|
### Admin Registration Details
|
|
|
|
**Dimension 1:**
|
|
- **Dimension Name:** Form Name
|
|
- **Scope:** Event
|
|
- **Event Parameter:** form_name
|
|
- **Description:** Name of form submitted (contact, newsletter, demo request, etc)
|
|
|
|
**Dimension 2:**
|
|
- **Dimension Name:** Form ID
|
|
- **Scope:** Event
|
|
- **Event Parameter:** form_id
|
|
- **Description:** HTML ID attribute of submitted form
|
|
|
|
**Dimension 3:**
|
|
- **Dimension Name:** Form Destination
|
|
- **Scope:** Event
|
|
- **Event Parameter:** form_destination
|
|
- **Description:** Form submission destination URL or page
|
|
|
|
### Expected Report Output
|
|
|
|
```
|
|
Form Name Form Submissions Avg. Engagement Time
|
|
================================================================
|
|
Contact Form 245 42 seconds
|
|
Newsletter Signup 189 15 seconds
|
|
Demo Request 78 85 seconds
|
|
Product Inquiry 156 38 seconds
|
|
```
|
|
|
|
---
|
|
|
|
## Template 2: User-Scoped Dimension - Customer Tier
|
|
|
|
### Code Implementation
|
|
|
|
```javascript
|
|
// After user login/authentication
|
|
function setUserProperties(user) {
|
|
// Determine subscription tier
|
|
let tier = 'free';
|
|
if (user.isPaidSubscriber) {
|
|
tier = user.premiumTier || 'pro';
|
|
}
|
|
|
|
gtag('set', {
|
|
'subscription_tier': tier,
|
|
'customer_id': user.id || 'guest',
|
|
'account_age_days': Math.floor(
|
|
(new Date() - new Date(user.createdDate)) / (1000 * 60 * 60 * 24)
|
|
)
|
|
});
|
|
}
|
|
|
|
// Call on page load if logged in
|
|
if (window.currentUser) {
|
|
setUserProperties(window.currentUser);
|
|
}
|
|
```
|
|
|
|
### Admin Registration Details
|
|
|
|
**Dimension 1:**
|
|
- **Dimension Name:** Subscription Tier
|
|
- **Scope:** User
|
|
- **User Property:** subscription_tier
|
|
- **Description:** User's plan type: free, pro, enterprise, trial
|
|
|
|
**Dimension 2:**
|
|
- **Dimension Name:** Customer ID
|
|
- **Scope:** User
|
|
- **User Property:** customer_id
|
|
- **Description:** Internal customer identifier (hashed)
|
|
|
|
**Dimension 3:**
|
|
- **Dimension Name:** Account Age (Days)
|
|
- **Scope:** User
|
|
- **User Property:** account_age_days
|
|
- **Description:** Days since account creation
|
|
|
|
### Expected Report Output
|
|
|
|
```
|
|
Subscription Tier Users Avg. Sessions Revenue
|
|
======================================================
|
|
Free 2,450 1.8 $0
|
|
Pro 890 5.2 $8,900
|
|
Enterprise 34 12.1 $45,000
|
|
Trial 156 3.2 $0
|
|
```
|
|
|
|
---
|
|
|
|
## Template 3: Item-Scoped Dimension - Product Color
|
|
|
|
### Code Implementation
|
|
|
|
```javascript
|
|
// On purchase event
|
|
function trackPurchase(order) {
|
|
const items = order.products.map(product => ({
|
|
'item_id': product.sku,
|
|
'item_name': product.name,
|
|
'price': product.price,
|
|
'quantity': product.quantity,
|
|
'item_category': product.category,
|
|
// CUSTOM ITEM-SCOPED DIMENSION
|
|
'item_color': product.color || 'not_specified'
|
|
}));
|
|
|
|
gtag('event', 'purchase', {
|
|
'transaction_id': order.id,
|
|
'value': order.total,
|
|
'currency': 'USD',
|
|
'items': items
|
|
});
|
|
}
|
|
```
|
|
|
|
### Admin Registration Details
|
|
|
|
**Dimension 1:**
|
|
- **Dimension Name:** Item Color
|
|
- **Scope:** Item
|
|
- **Event Parameter:** item_color
|
|
- **Description:** Color variant of product (red, blue, green, black, etc)
|
|
|
|
### Expected Report Output
|
|
|
|
```
|
|
Item Color Items Purchased Revenue Avg. Price
|
|
=========================================================
|
|
Blue 1,234 $45,987 $37.28
|
|
Black 987 $38,976 $39.45
|
|
Red 654 $23,456 $35.88
|
|
Green 432 $16,789 $38.86
|
|
Not Specified 123 $4,567 $37.14
|
|
```
|
|
|
|
---
|
|
|
|
## Template 4: Event-Scoped Dimension - Video Quality
|
|
|
|
### Code Implementation
|
|
|
|
```javascript
|
|
// For video player that tracks quality changes
|
|
class VideoPlayer {
|
|
constructor(containerId) {
|
|
this.container = document.getElementById(containerId);
|
|
this.videoTitle = this.container.getAttribute('data-video-title');
|
|
this.currentQuality = 'auto';
|
|
|
|
// Track when quality changes
|
|
this.setupQualityTracking();
|
|
}
|
|
|
|
setupQualityTracking() {
|
|
this.container.addEventListener('qualitychange', (e) => {
|
|
this.currentQuality = e.detail.quality;
|
|
|
|
gtag('event', 'video_quality_change', {
|
|
'video_title': this.videoTitle,
|
|
'new_quality': this.currentQuality
|
|
});
|
|
});
|
|
}
|
|
|
|
onVideoComplete() {
|
|
gtag('event', 'video_complete', {
|
|
'video_title': this.videoTitle,
|
|
'video_quality': this.currentQuality,
|
|
'watch_time_minutes': Math.floor(this.duration / 60),
|
|
'completion_percentage': 100
|
|
});
|
|
}
|
|
}
|
|
|
|
// Initialize
|
|
const player = new VideoPlayer('video-player');
|
|
```
|
|
|
|
### Admin Registration Details
|
|
|
|
**Dimension 1:**
|
|
- **Dimension Name:** Video Quality
|
|
- **Scope:** Event
|
|
- **Event Parameter:** video_quality
|
|
- **Description:** Video quality setting (auto, 360p, 480p, 720p, 1080p)
|
|
|
|
**Dimension 2:**
|
|
- **Dimension Name:** New Quality
|
|
- **Scope:** Event
|
|
- **Event Parameter:** new_quality
|
|
- **Description:** Quality selected after quality change event
|
|
|
|
### Expected Report Output
|
|
|
|
```
|
|
Video Quality Video Completes Avg. Watch Time Completion %
|
|
==================================================================
|
|
1080p 345 18 minutes 92%
|
|
720p 289 16 minutes 88%
|
|
480p 156 14 minutes 76%
|
|
360p 89 10 minutes 62%
|
|
Auto 421 17 minutes 85%
|
|
```
|
|
|
|
---
|
|
|
|
## Template 5: User-Scoped Dimension - Company Type
|
|
|
|
### Code Implementation
|
|
|
|
```javascript
|
|
// After user signup/login with company info
|
|
function setCompanyProperties(company) {
|
|
let companyType = 'unknown';
|
|
|
|
if (company.employees < 10) {
|
|
companyType = 'micro';
|
|
} else if (company.employees < 50) {
|
|
companyType = 'small';
|
|
} else if (company.employees < 500) {
|
|
companyType = 'medium';
|
|
} else {
|
|
companyType = 'enterprise';
|
|
}
|
|
|
|
gtag('set', {
|
|
'company_type': companyType,
|
|
'company_size': company.employees,
|
|
'industry': company.industry || 'other'
|
|
});
|
|
}
|
|
|
|
// Usage
|
|
if (window.userData && window.userData.company) {
|
|
setCompanyProperties(window.userData.company);
|
|
}
|
|
```
|
|
|
|
### Admin Registration Details
|
|
|
|
**Dimension 1:**
|
|
- **Dimension Name:** Company Type
|
|
- **Scope:** User
|
|
- **User Property:** company_type
|
|
- **Description:** Company size category (micro, small, medium, enterprise)
|
|
|
|
**Dimension 2:**
|
|
- **Dimension Name:** Company Size (Employees)
|
|
- **Scope:** User
|
|
- **User Property:** company_size
|
|
- **Description:** Number of employees
|
|
|
|
**Dimension 3:**
|
|
- **Dimension Name:** Industry
|
|
- **Scope:** User
|
|
- **User Property:** industry
|
|
- **Description:** Company industry classification
|
|
|
|
### Expected Report Output
|
|
|
|
```
|
|
Company Type Users Conversions Avg. Deal Size
|
|
====================================================
|
|
Enterprise 45 34 $45,000
|
|
Medium 156 89 $12,500
|
|
Small 234 156 $4,200
|
|
Micro 567 123 $1,500
|
|
Unknown 198 45 $2,800
|
|
```
|
|
|
|
---
|
|
|
|
## Template 6: Item-Scoped Dimension - Product Supplier
|
|
|
|
### Code Implementation
|
|
|
|
```javascript
|
|
// Ecommerce inventory tracking with supplier info
|
|
function trackAddToCart(product) {
|
|
gtag('event', 'add_to_cart', {
|
|
'items': [{
|
|
'item_id': product.sku,
|
|
'item_name': product.name,
|
|
'price': product.price,
|
|
'quantity': product.quantity,
|
|
'item_category': product.category,
|
|
// CUSTOM ITEM-SCOPED DIMENSION
|
|
'supplier': product.supplier || 'internal',
|
|
'warehouse': product.warehouseLocation || 'us_east'
|
|
}],
|
|
'value': product.price * product.quantity,
|
|
'currency': 'USD'
|
|
});
|
|
}
|
|
```
|
|
|
|
### Admin Registration Details
|
|
|
|
**Dimension 1:**
|
|
- **Dimension Name:** Item Supplier
|
|
- **Scope:** Item
|
|
- **Event Parameter:** supplier
|
|
- **Description:** Supplier/vendor of product (Vendor A, Vendor B, Internal, Dropship)
|
|
|
|
**Dimension 2:**
|
|
- **Dimension Name:** Warehouse Location
|
|
- **Scope:** Item
|
|
- **Event Parameter:** warehouse
|
|
- **Description:** Warehouse location for item (us_east, us_west, eu, asia)
|
|
|
|
### Expected Report Output
|
|
|
|
```
|
|
Supplier Items in Cart Carts Conversion Rate
|
|
========================================================
|
|
Vendor A 2,345 567 45%
|
|
Vendor B 1,876 412 38%
|
|
Internal 987 298 52%
|
|
Dropship 654 156 27%
|
|
```
|
|
|
|
---
|
|
|
|
## Template 7: Event-Scoped Dimension - Button Click
|
|
|
|
### Code Implementation
|
|
|
|
```javascript
|
|
// CTA button tracking across page
|
|
function trackButtonClicks() {
|
|
document.querySelectorAll('[data-track-button]').forEach(button => {
|
|
button.addEventListener('click', function(e) {
|
|
// Extract button information
|
|
const buttonName = this.getAttribute('data-button-name') ||
|
|
this.innerText.trim() ||
|
|
'unknown_button';
|
|
const buttonLocation = this.getAttribute('data-location') ||
|
|
'unknown_location';
|
|
const destination = this.getAttribute('href') ||
|
|
this.getAttribute('data-destination') ||
|
|
'(none)';
|
|
|
|
gtag('event', 'button_click', {
|
|
'button_name': buttonName,
|
|
'button_location': buttonLocation,
|
|
'destination': destination
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
// Initialize on page load
|
|
document.addEventListener('DOMContentLoaded', trackButtonClicks);
|
|
```
|
|
|
|
### Admin Registration Details
|
|
|
|
**Dimension 1:**
|
|
- **Dimension Name:** Button Name
|
|
- **Scope:** Event
|
|
- **Event Parameter:** button_name
|
|
- **Description:** Text/label of clicked button
|
|
|
|
**Dimension 2:**
|
|
- **Dimension Name:** Button Location
|
|
- **Scope:** Event
|
|
- **Event Parameter:** button_location
|
|
- **Description:** Position on page (hero, sidebar, footer, etc)
|
|
|
|
**Dimension 3:**
|
|
- **Dimension Name:** Destination
|
|
- **Scope:** Event
|
|
- **Event Parameter:** destination
|
|
- **Description:** Where button leads (URL or action)
|
|
|
|
### Expected Report Output
|
|
|
|
```
|
|
Button Name Button Location Clicks Conversion %
|
|
===========================================================
|
|
Sign Up Now Hero Section 1,234 8.5%
|
|
Learn More Middle Section 789 5.2%
|
|
Get Started Footer 456 12.1%
|
|
Free Trial Sidebar 678 9.8%
|
|
Contact Us Header 345 15.3%
|
|
```
|
|
|
|
---
|
|
|
|
## Template 8: Documentation Template for Each Dimension
|
|
|
|
**Print this for every custom dimension and keep in shared documentation:**
|
|
|
|
```
|
|
═══════════════════════════════════════════════════════════
|
|
CUSTOM DIMENSION DOCUMENTATION
|
|
|
|
Dimension Name: [NAME]
|
|
Registered: [DATE]
|
|
Status: [ACTIVE/DEPRECATED]
|
|
|
|
BASIC INFORMATION
|
|
─────────────────
|
|
GA4 Dimension Name: [Display name in reports]
|
|
Parameter Name: [Name in code]
|
|
Scope: [Event / User / Item]
|
|
Description: [What it tracks]
|
|
|
|
IMPLEMENTATION
|
|
──────────────
|
|
Owner/Creator: [Person name]
|
|
Code Location: [File path]
|
|
Event Name(s): [Which events send this parameter]
|
|
Approximate Events/Month: [Volume estimate]
|
|
|
|
BUSINESS CONTEXT
|
|
────────────────
|
|
Purpose: [Why we track this]
|
|
Business Impact: [How it's used]
|
|
Teams Using: [Marketing, Product, Analytics, etc.]
|
|
Report Location: [Which reports show this]
|
|
|
|
DATA QUALITY
|
|
────────────
|
|
Data Starts: [Date dimension was activated]
|
|
Current Status: [Actively used / Occasionally used / Dormant]
|
|
Data Quality Issues: [Any known issues]
|
|
|
|
DEPENDENCIES
|
|
─────────────
|
|
Related Dimensions: [Other dimensions it works with]
|
|
Related Events: [Which events send this]
|
|
Related Metrics: [Any related metrics]
|
|
|
|
NOTES
|
|
─────
|
|
[Any additional context]
|
|
|
|
═══════════════════════════════════════════════════════════
|
|
```
|
|
|
|
---
|
|
|
|
## Quick Copy-Paste: Implementation Checklist
|
|
|
|
```markdown
|
|
## Custom Dimension Implementation Checklist
|
|
|
|
### Pre-Implementation
|
|
- [ ] Dimension name approved by team
|
|
- [ ] Parameter name finalized
|
|
- [ ] Scope decided (Event/User/Item)
|
|
- [ ] Code location identified
|
|
- [ ] Documentation drafted
|
|
|
|
### Implementation
|
|
- [ ] Parameter added to event code
|
|
- [ ] Code deployed to development
|
|
- [ ] Code tested in development
|
|
- [ ] Code deployed to production
|
|
- [ ] Code monitoring in place
|
|
|
|
### Verification
|
|
- [ ] Parameter appears in DebugView
|
|
- [ ] Parameter name matches registration (case-sensitive)
|
|
- [ ] Parameter values are accurate
|
|
- [ ] Dimension created in Admin
|
|
- [ ] Wait 24-48 hours for data population
|
|
|
|
### Post-Implementation
|
|
- [ ] Dimension appears in reports
|
|
- [ ] Data accuracy verified
|
|
- [ ] Team documentation updated
|
|
- [ ] Dashboards created (if applicable)
|
|
- [ ] Team training completed
|
|
- [ ] Added to dimension inventory
|
|
- [ ] Quarterly review scheduled
|
|
|
|
### Notes
|
|
[Any issues or observations]
|
|
```
|
|
|
|
---
|
|
|
|
## Template: GA4 Dimension Inventory Spreadsheet
|
|
|
|
**Use this to track all dimensions:**
|
|
|
|
| Dimension Name | Parameter Name | Scope | Event | Owner | Status | Created | Notes |
|
|
|---|---|---|---|---|---|---|---|
|
|
| Form Name | form_name | Event | form_submit | John | Active | 2024-09 | Core tracking |
|
|
| Button Name | button_name | Event | button_click | Sarah | Active | 2024-09 | Updated Sept |
|
|
| Subscription Tier | subscription_tier | User | all | Mike | Active | 2024-08 | Critical |
|
|
| Video Quality | video_quality | Event | video_watch | Jane | Active | 2024-10 | New tracking |
|
|
| Item Color | item_color | Item | purchase | Alex | Active | 2024-09 | Ecommerce |
|
|
| Test Param | test_parameter | Event | test_event | Dev | Deprecated | 2024-11 | Delete after 11/20 |
|
|
|
|
**Columns to include:**
|
|
- Dimension Name (display name)
|
|
- Parameter Name (code name)
|
|
- Scope (Event/User/Item)
|
|
- Event (which event sends it)
|
|
- Owner (who created)
|
|
- Status (Active/Deprecated/Test)
|
|
- Created (date)
|
|
- Last Modified (date)
|
|
- Notes (any details)
|
|
- Quota Usage (which quota it counts toward)
|
|
|