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.

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.

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#


GoalNameTip
Online purchasepurchaseOne name per purchase type if you need them separated.
Newsletter signupnewsletter-signupAdd placement if useful: newsletter-signup-footer.
Account creationsignupSplit by tier: signup-free, signup-pro.
Gated downloadwhitepaper-downloadName per asset when you want them separated.
Demo requestleadCampaign attribution comes from the UTM parameters on the page view, not the conversion.