Skip to main content

Custom Dimensions

Custom dimensions let you capture additional data beyond standard analytics fields, enabling business-specific analysis.

What Are Custom Dimensions?

Standard tracking captures common fields:

  • Page URL
  • Referrer
  • Device type
  • Country

Custom dimensions let you add your own fields:

  • Customer type (free/premium)
  • Product category
  • A/B test variant
  • Subscription plan

Accessing Custom Dimensions

  1. Click the gear icon in the main navigation
  2. Select Tracking → Custom Dimensions

Dimension Scopes

Hit-Level Dimensions

Attached to individual events. Pass as properties in your tracking calls:

// Conversion with custom dimensions as properties
sealmetrics.conv('purchase', 149.99, {
product_category: 'Electronics',
page_type: 'product-detail',
payment_method: 'credit_card'
});

// Microconversion with custom dimensions as properties
sealmetrics.micro('product_view', {
product_category: 'Electronics',
product_brand: 'Apple',
price_range: '100-500'
});

Session-Level Dimensions

For data that applies to the entire session (e.g., A/B test variant, entry campaign), include the dimension as a property on every event in that session:

// Include session context in each event
sealmetrics.micro('add_to_cart', {
product_id: 'SKU-123',
ab_variant: 'B', // Session context
entry_campaign: 'summer-sale' // Session context
});

sealmetrics.conv('purchase', 99.99, {
ab_variant: 'B',
entry_campaign: 'summer-sale'
});

User-Level Dimensions

For data about the user (e.g., customer tier, plan type), include it as a property with each event. Server-side rendering is the best way to inject this data:

<script>
window.addEventListener('load', function() {
sealmetrics.conv('purchase', <?php echo $order->total; ?>, {
customer_type: '<?php echo $user->tier; ?>',
plan: '<?php echo $user->plan; ?>',
currency: '<?php echo $order->currency; ?>'
});
});
</script>

Creating Custom Dimensions

Add New Dimension

  1. Click + Add Custom Dimension
  2. Configure:
Add Custom Dimension
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Name: [Customer Type ]

Internal ID: [customer_type ]
(used in code, no spaces)

Scope: [Hit ▼]

Data Type: [String ▼]

Description: [Free, pro, or enterprise tier]

Default Value: [free ]
(optional, used when not set)

[Create Dimension]

Available Data Types

TypeExample ValuesUse Case
String"premium", "category-a"Categories, names
Number42, 3.14Counts, scores
Booleantrue, falseFlags, toggles
Date"2024-01-15"Timestamps

Setting Dimension Values via JavaScript

Dimensions are set as properties in your tracking calls:

// With conversions (3rd parameter)
sealmetrics.conv('purchase', 149.99, {
product_category: 'Electronics',
customer_type: 'premium',
payment_method: 'credit_card'
});

// With microconversions (2nd parameter)
sealmetrics.micro('add_to_cart', {
product_id: 'SKU-123',
product_category: 'Electronics',
customer_type: 'premium'
});

Using Custom Dimensions in Reports

Filtering

Filter any report by custom dimension:

Traffic Report
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Filters:
+ Customer Type: [Premium ▼]
+ Product Category: [Electronics ▼]

Showing data for: Premium customers viewing Electronics

Breaking Down

Break down metrics by dimension:

Conversions by Customer Type
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Customer Type Conversions Conv Rate Revenue
─────────────────────────────────────────────────────
Enterprise 234 5.2% €89,000
Pro 567 3.8% €45,600
Free 123 0.8% €2,340

Custom Reports

Create reports specifically for your dimensions:

Custom Report: A/B Test Analysis
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Dimension: ab_variant
Metrics: Sessions, Conversions, Revenue

Results:
─────────────────────────────────────────────────────
Variant Sessions Conversions Conv Rate
─────────────────────────────────────────────────────
Control 12,340 234 1.90%
Variant A 12,120 298 2.46% ↑
Variant B 12,540 187 1.49% ↓

Common Dimension Examples

E-commerce

// Purchase with dimensions
sealmetrics.conv('purchase', 149.99, {
product_category: 'Electronics',
product_brand: 'Apple',
price_range: '100-500',
customer_tier: 'gold',
payment_method: 'credit_card'
});

SaaS

// Feature usage with dimensions
sealmetrics.micro('feature_used', {
feature_name: 'export',
feature_category: 'reporting',
plan_type: 'pro',
company_size: '50-200',
industry: 'technology'
});

Media/Content

// Content grouping is handled via the group parameter:
// <script src="https://t.sealmetrics.com/t.js?id=YOUR_ID&group=blog" defer></script>

// Additional content dimensions via microconversions:
sealmetrics.micro('article_engagement', {
content_type: 'article',
author: 'john-smith',
category: 'technology',
word_count_bucket: '1000-2000',
has_video: 'true'
});

Dimension Limits

All plans include up to 50 custom dimensions.

Each dimension can have:

  • Name: 64 characters max
  • ID: 32 characters max, alphanumeric + underscore
  • Value: 256 characters max per value

Managing Dimensions

Edit Dimension

  1. Click on dimension name
  2. Modify settings (cannot change scope or ID)
  3. Save changes

Archive Dimension

Stop collecting new data but keep historical:

Archive Dimension
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Archiving "old_campaign_id" will:
• Stop accepting new values
• Keep existing historical data
• Free up a dimension slot
• Allow unarchiving later

[Cancel] [Archive]

Delete Dimension

Permanently remove dimension and all data:

⚠️ Delete Dimension

This will PERMANENTLY delete:
• The dimension definition
• ALL historical data for this dimension

This cannot be undone.

Type dimension ID to confirm: [old_campaign_id]

[Cancel] [Delete]

Best Practices

Naming Conventions

  • Use snake_case for IDs: customer_type, not customerType
  • Use descriptive names: product_category, not cat1
  • Prefix related dimensions: user_tier, user_industry, user_company_size

Choosing Scope

ScopeUse WhenExample
HitValue changes per eventProduct category, page type
SessionValue is constant for visitEntry campaign, A/B variant
UserValue is constant for userCustomer tier, signup date

Performance Tips

  • Don't create dimensions you won't analyze
  • Use predefined values where possible (faster queries)
  • Consider cardinality (dimensions with millions of unique values are slower)

Troubleshooting

Dimension Not Appearing in Reports

  1. Check dimension is not archived
  2. Verify the property name in your code matches the dimension ID exactly (case-sensitive)
  3. Ensure you're sending the property with your events
  4. Wait a few minutes for data processing

Values Showing as "(not set)"

  1. Value wasn't sent with the event
  2. Dimension was created after data was collected
  3. Default value not configured