Conversions
Track purchases, leads, signups, and other goal completions with monetary value.
Syntax
sealmetrics.conv(type, amount);
sealmetrics.conv(type, amount, properties);
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Conversion name (e.g., 'purchase', 'lead', 'signup') |
amount | number | Yes | Monetary value. Use 0 for non-monetary conversions |
properties | object | No | Custom key-value data |
Examples
Purchase
sealmetrics.conv('purchase', 99.99);
Purchase with Properties
sealmetrics.conv('purchase', 149.99, {
order_id: 'ORD-2025-001234',
currency: 'EUR',
payment_method: 'credit_card',
coupon: 'SAVE10'
});
Lead (No Monetary Value)
sealmetrics.conv('lead', 0, {
form_name: 'contact_form',
source: 'homepage'
});
Signup
sealmetrics.conv('signup', 0, {
plan: 'trial',
referral_code: 'FRIEND20'
});
Subscription Purchase
sealmetrics.conv('purchase', 49, {
plan: 'pro_monthly',
currency: 'USD',
billing_cycle: 'monthly'
});
E-commerce Implementation
Thank You Page
Place on your order confirmation page:
<script src="https://t.sealmetrics.com/t.js?id=YOUR_ACCOUNT_ID&group=checkout" defer></script>
<script>
// Wait for tracker to load
window.addEventListener('load', function() {
sealmetrics.conv('purchase', 189.99, {
order_id: 'ORD-2025-001234',
currency: 'EUR',
items_count: '3',
payment_method: 'credit_card'
});
});
</script>
Dynamic Values (Server-Side Rendering)
<script src="https://t.sealmetrics.com/t.js?id=YOUR_ACCOUNT_ID&group=checkout" defer></script>
<script>
window.addEventListener('load', function() {
sealmetrics.conv('purchase', <?php echo $order->total; ?>, {
order_id: '<?php echo $order->id; ?>',
currency: '<?php echo $order->currency; ?>'
});
});
</script>
WooCommerce
In functions.php or a custom plugin:
add_action('woocommerce_thankyou', function($order_id) {
$order = wc_get_order($order_id);
?>
<script>
window.addEventListener('load', function() {
sealmetrics.conv('purchase', <?php echo $order->get_total(); ?>, {
order_id: '<?php echo $order_id; ?>',
currency: '<?php echo $order->get_currency(); ?>',
payment_method: '<?php echo $order->get_payment_method(); ?>'
});
});
</script>
<?php
});
Shopify
In your checkout.liquid or via Shopify Additional Scripts:
<script>
window.addEventListener('load', function() {
sealmetrics.conv('purchase', {{ checkout.total_price | money_without_currency | remove: ',' }}, {
order_id: '{{ order.name }}',
currency: '{{ checkout.currency }}'
});
});
</script>
SaaS Implementation
Free Trial Signup
document.querySelector('#signup-form').addEventListener('submit', function(e) {
sealmetrics.conv('signup', 0, {
plan: 'trial',
source: 'pricing_page'
});
});
Paid Subscription
// After successful payment
sealmetrics.conv('purchase', 49, {
plan: 'pro',
billing_cycle: 'monthly',
currency: 'USD'
});
Plan Upgrade
sealmetrics.conv('upgrade', 99, {
from_plan: 'starter',
to_plan: 'pro',
currency: 'USD'
});
Properties Reference
Common properties to include:
| Property | Description | Example |
|---|---|---|
order_id | Unique order identifier | 'ORD-2025-001234' |
currency | ISO 4217 currency code | 'EUR', 'USD', 'GBP' |
payment_method | Payment type | 'credit_card', 'paypal', 'bank_transfer' |
coupon | Discount code used | 'SAVE10' |
items_count | Number of items | '3' |
plan | Subscription plan name | 'pro', 'enterprise' |
billing_cycle | Billing frequency | 'monthly', 'yearly' |
Property Values Must Be Strings
All property values are transmitted as strings. Numbers and booleans are automatically converted.
// Both work the same:
sealmetrics.conv('purchase', 99, { items_count: 3 });
sealmetrics.conv('purchase', 99, { items_count: '3' });
Timing
Conversions Count as Pageviews
Every conversion event also counts as a pageview. Do not call sealmetrics() separately on the same page.
Wait for Tracker to Load
If calling conversion immediately on page load, wait for the script:
window.addEventListener('load', function() {
sealmetrics.conv('purchase', 99.99);
});
Or check if function exists:
if (typeof sealmetrics !== 'undefined') {
sealmetrics.conv('purchase', 99.99);
}
Deduplication
Sealmetrics does not deduplicate conversions automatically. To prevent duplicate tracking:
- Server-side flag: Mark orders as "tracked" in your database
- One-time page: Redirect after conversion so refreshing doesn't re-trigger
- Session check: Use your own session logic to track if conversion was already sent
Example with localStorage (client-side):
var orderId = 'ORD-2025-001234';
if (!localStorage.getItem('tracked_' + orderId)) {
sealmetrics.conv('purchase', 99.99, { order_id: orderId });
localStorage.setItem('tracked_' + orderId, 'true');
}
note
Sealmetrics does not use localStorage, but your deduplication logic can.