How to Measure Conversions
To measure conversions in SealMetrics, install the tracker and call sealmetrics.conv('type', amount?, { ...props }) when a goal completes — for example sealmetrics.conv('purchase', 99.99). Use sealmetrics.conv() for conversions (goal completions with an optional monetary value like purchases, signups, and leads) and sealmetrics.micro() for microconversions (user interactions and funnel steps such as add-to-cart or video plays).
Quick Start
1. Install the Tracker
First, add the tracker to your website:
<script src="https://t.sealmetrics.com/t.js?id=YOUR_ACCOUNT_ID" defer></script>
2. Track a Conversion
Call sealmetrics.conv() when a conversion happens. The signature is sealmetrics.conv('type', amount?, { ...props }) — the amount is optional (only added to the event when it's a number), and the properties object is optional too:
// Track a purchase
sealmetrics.conv('purchase', 99.99);
// Track a conversion with no monetary value
sealmetrics.conv('lead');
// Track a purchase with additional data
sealmetrics.conv('purchase', 99.99, {
currency: 'EUR',
payment_method: 'credit_card'
});
3. Track a Microconversion
Call sealmetrics.micro() for user interactions:
// Track add-to-cart
sealmetrics.micro('add_to_cart');
// Track with additional data
sealmetrics.micro('add_to_cart', {
product_id: 'SKU-123',
product_name: 'Blue Shoes'
});
Conversions vs Microconversions
| Aspect | Conversion | Microconversion |
|---|---|---|
| Purpose | Goal completion | Progress/engagement |
| Monetary value | Optional (amount parameter) | No |
| Function | sealmetrics.conv() | sealmetrics.micro() |
| Examples | Purchase, signup, lead | Add to cart, video play, scroll |
Conversion Examples
E-commerce Purchase
sealmetrics.conv('purchase', 149.99, {
currency: 'EUR',
payment_method: 'credit_card'
});
Lead Form Submission
// Properties live in the third argument; pass 0 as the amount when there is no monetary value
sealmetrics.conv('lead', 0, {
form_name: 'contact_form',
source: 'homepage'
});
Newsletter Signup
sealmetrics.conv('signup', 0, {
list: 'weekly_newsletter',
source: 'footer'
});
SaaS Subscription
sealmetrics.conv('subscription', 49, {
plan: 'pro_monthly',
currency: 'USD'
});
Microconversion Examples
Add to Cart
sealmetrics.micro('add_to_cart', {
product_id: 'SKU-456',
product_name: 'Running Shoes',
price: '89.99'
});
Checkout Step
sealmetrics.micro('begin_checkout', {
items_count: '3',
cart_value: '267.99'
});
Video Play
sealmetrics.micro('video_play', {
video_id: 'product-demo',
video_title: 'Product Tour'
});
Button Click
document.querySelector('.cta-button').addEventListener('click', function() {
sealmetrics.micro('cta_click', {
button_text: this.textContent,
button_location: 'hero'
});
});
Implementation Patterns
On Page Load (Thank You Page)
<script src="https://t.sealmetrics.com/t.js?id=YOUR_ACCOUNT_ID" defer></script>
<script>
window.addEventListener('load', function() {
sealmetrics.conv('purchase', 149.99, {
currency: 'EUR'
});
});
</script>
On Button Click
<button onclick="trackConversion()">Complete Purchase</button>
<script>
function trackConversion() {
sealmetrics.conv('purchase', 99.99, {
currency: 'EUR'
});
}
</script>
On Form Submit
<form onsubmit="trackLead()">
<!-- form fields -->
<button type="submit">Submit</button>
</form>
<script>
function trackLead() {
sealmetrics.micro('form_submit', {
form_name: 'contact'
});
}
</script>
Dynamic Values
From JavaScript Variables
var orderData = {
total: 149.99,
currency: 'EUR'
};
sealmetrics.conv('purchase', orderData.total, {
currency: orderData.currency
});
From Server-Side (PHP)
<script>
window.addEventListener('load', function() {
sealmetrics.conv('purchase', <?php echo $order->total; ?>, {
currency: '<?php echo $order->currency; ?>'
});
});
</script>
From Data Attributes
<button
data-product-id="SKU-123"
data-product-name="Blue Shoes"
data-price="89.99"
onclick="trackAddToCart(this)"
>
Add to Cart
</button>
<script>
function trackAddToCart(btn) {
sealmetrics.micro('add_to_cart', {
product_id: btn.dataset.productId,
product_name: btn.dataset.productName,
price: btn.dataset.price
});
}
</script>
Checking if Tracker is Loaded
Always verify the tracker exists before calling it:
if (typeof sealmetrics !== 'undefined') {
sealmetrics.conv('purchase', 99.99);
}
Or wait for it to load:
window.addEventListener('load', function() {
if (typeof sealmetrics !== 'undefined') {
sealmetrics.conv('purchase', 99.99);
}
});
Property Guidelines
- All values are strings — Numbers are automatically converted
- Use descriptive names —
product_idnotpid - Be consistent — Use the same property names across your site
- Don't include PII — No email addresses, phone numbers, etc.
Troubleshooting
Conversions not appearing
- Check the browser Network tab for requests to
t.sealmetrics.com - Verify your Site ID is correct
- Wait 1-2 minutes and check the Real-time report
- Ensure the domain is authorized in your SealMetrics account
Duplicate conversions
- Implement deduplication (see E-commerce Guide)
- Only fire the conversion once per order
- Use server-side flags to mark orders as tracked
Next Steps
- Conversions Reference — Complete conversion API
- Microconversions Reference — Complete microconversion API
- E-commerce Setup — Full e-commerce implementation
- Google Tag Manager — Track via GTM
- Installation — Detailed guide for installing the tracker
- Conversions Report — See your tracked conversions and revenue by source