Conversions
A conversion records that a visitor completed a goal that matters to your business — a purchase, a signup, a download, a form submission. Conversions power the Conversions dashboard.
Unlike page views, clicks and impressions, a conversion is always sent manually from your code, using a name you choose. You decide what counts and exactly when it fires.
Fire after success, never on intent
Track a conversion only after the goal actually succeeds — after payment is confirmed, after the account is created, after the download completes. Firing on a button click, before the action has succeeded, inflates your numbers and quietly corrupts the conversion rate you make decisions on.
Aggregation by Name#
A conversion is identified only by its name. Use the same name consistently, and use distinct names when you need to tell goals apart — for example signup-free versus signup-pro.
Custom parameters are not supported yet
Attaching custom parameters to a conversion (value, currency, product…) is on the roadmap. The SDK will accept them but the endpoint rejects them today. Encode any detail you need in the conversion name for now.
Traditional#
document.getElementById('newsletter-form')
.addEventListener('submit', async (e) => {
e.preventDefault();
const ok = await submitNewsletter(e.target.email.value);
// Fire ONLY after the signup actually succeeded
if (ok && window.dotAnalytics) {
window.dotAnalytics.conversion('newsletter-signup');
}
});Headless#
const { conversion } = useContentAnalytics(analyticsConfig);
const handleCheckout = async () => {
const result = await processPayment(cart);
if (result.status === 'paid') conversion('purchase');
};Naming Examples#
| Goal | Name | Tip |
|---|---|---|
| Online purchase | purchase | One name per purchase type if you need them separated. |
| Newsletter signup | newsletter-signup | Add placement if useful: newsletter-signup-footer. |
| Account creation | signup | Split by tier: signup-free, signup-pro. |
| Gated download | whitepaper-download | Name per asset when you want them separated. |
| Demo request | lead | Campaign attribution comes from the UTM parameters on the page view, not the conversion. |