Goal Types

Overview

Goals measure visitor actions that matter to your business. The tracking script supports 9 goal types, each with a different triggering mechanism. Goals are evaluated independently from experiences and attributed to all experiences the visitor is currently bucketed into.

Goal Types

Page Visit

Triggers when: The visitor navigates to a URL that matches the goal's URL pattern.

Evaluation: Checked immediately when the script processes goals, and again on each SPA page transition. Uses the same URL matching rules as location triggers (exact, contains, regex, etc.).

Click Element

Triggers when: The visitor clicks an element matching a CSS selector.

Evaluation: A click event listener is attached to the document. When a click occurs, the target element is checked against the goal's selector.

Click Link

Triggers when: The visitor clicks a link (<a> tag) matching specific criteria (href pattern, CSS selector).

Evaluation: Similar to Click Element but specifically targets links.

Form Submit

Triggers when: The visitor submits a form matching a CSS selector.

Evaluation: A submit event listener is attached to the document.

Scroll Percentage

Triggers when: The visitor scrolls past a percentage threshold of the page.

Evaluation: A scroll event listener tracks the maximum scroll depth. When it crosses the configured percentage, the goal fires.

Code Trigger

Triggers when: You manually fire the goal from your own JavaScript code.

Usage:

// Trigger a specific goal
window._conv_q = window._conv_q || [];
window._conv_q.push({
  what: 'triggerConversion',
  params: { goalId: '100123' }
});

This is useful for tracking events that don't map to standard DOM interactions — API calls, video completions, custom workflows, etc.

Revenue

Triggers when: Revenue data is sent via the API or intercepted from a GA purchase event.

Usage:

window._conv_q = window._conv_q || [];
window._conv_q.push({
  what: 'sendRevenue',
  params: {
    goalId: '100123',        // optional — auto-detected if omitted
    transactionId: 'TXN-456',
    amount: 99.99,
    productsCount: 2          // optional
  }
});

Revenue goals support outlier detection to prevent skewed results from unusually large transactions.

GA Import

Triggers when: A Google Analytics event that you've imported as a goal fires on the page.

Evaluation: The script watches the dataLayer for events matching the imported event name. See GA Event Interception for the matching rules.

Duplicate Prevention

By default, most goals trigger once per visitor per experience. After a goal fires:

  1. The trigger is recorded in the visitor cookie
  2. Subsequent page loads check this record and skip already-triggered goals

Some goals support multiple triggers (configured per goal in the Convert UI), where each trigger is counted separately.

Goal Attribution

When a goal triggers, it is attributed to all experiences the visitor is currently bucketed into that are connected to that goal. This means:

  • A single goal trigger can count as a conversion for multiple experiences
  • Goals and experiences don't need a 1:1 relationship
  • Goal attribution happens at tracking time, not at setup time

Re-Evaluating Goals

If goals should be re-checked (e.g., after dynamic content loads), use:

window._conv_q = window._conv_q || [];
window._conv_q.push({ what: 'recheckGoals' });

This re-initialises the request data and re-evaluates all goals from scratch.

Notes

  • DOM interaction goals (click, form submit) use event delegation — a single listener on the document captures all events
  • If other scripts block event propagation (stopPropagation()), see the Fix Blocked DOM Goals recipe
  • Goal listeners must be set up early — register them before the tracking script loads or from Global JavaScript