Skip to main content

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​

AspectConversionMicroconversion
PurposeGoal completionProgress/engagement
Monetary valueOptional (amount parameter)No
Functionsealmetrics.conv()sealmetrics.micro()
ExamplesPurchase, signup, leadAdd 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_id not pid
  • Be consistent — Use the same property names across your site
  • Don't include PII — No email addresses, phone numbers, etc.

Troubleshooting​

Conversions not appearing​

  1. Check the browser Network tab for requests to t.sealmetrics.com
  2. Verify your Site ID is correct
  3. Check the Conversions report (set the date range to today); hits arrive in seconds, so the Last hit timestamp at the top right of the Overview report should already show your test visit
  4. Ensure the domain is authorized in your Sealmetrics account

Duplicate conversions​

  1. Implement deduplication (see E-commerce Guide)
  2. Only fire the conversion once per order
  3. Use server-side flags to mark orders as tracked

Next Steps​

Written and maintained by the Sealmetrics Team