No Conversions

The results page is showing visitors in your variations, but the conversion count stays at zero. This means the experiment is running and bucketing correctly, but the metric is not firing. Here is how to diagnose and fix it.

Symptoms

  • Visitor counts are increasing on the results page, but conversions remain at 0 for all variations.
  • The conversion rate is 0% despite manually performing the action the metric should track.
  • One variation shows conversions but another shows zero (can indicate a metric issue specific to one variation's DOM structure).

Checklist

1

Check the metric configuration

Open your project's Metrics page and click on the metric assigned to the experiment. Review every field: click metrics, pageview metrics, and custom events each have their own things to verify. See the details below.

2

For click metrics: verify the CSS selector

Open your website in Chrome and navigate to the page with the element being tracked. Open DevTools → Console and test your selector (see below). This should return the element(s) you expect. If it returns an empty NodeList, the selector does not match anything: it may be wrong, or the element may use a different class name than you think. You can also use the DevTools Elements tab: click the element on the page, then right-click its HTML in the Elements panel and choose Copy → Copy selector to get a reliable selector.

3

For pageview metrics: verify the URL pattern

Manually complete the conversion flow (submit the form, complete the purchase, or whatever the experiment is tracking) and check the URL in your browser's address bar after the conversion. Compare that exact URL to the pattern in the metric. A common mistake is setting the URL to /thank-you but the actual confirmation page is at /checkout/confirmation?order=12345. The match-type rules are listed below.

4

For custom events: verify the tracking call is firing

Open DevTools → Console and perform the action that should trigger the conversion. Add a temporary log to your tracking call to confirm it runs (see below). If the log does not appear when you perform the action, the event handler is not attached correctly or the code path is not being reached. Check for JavaScript errors in the Console that might be preventing execution.

5

Check the metric is assigned to the experiment

Go to the experiment and click on Step 3 – Metrics. Verify that the metric you want to track is in the list. It is easy to accidentally save an experiment without a primary metric, or to add the wrong metric.

6

Check if you already converted during testing

The results page counts conversions once per visitor. The browser still sends a track call every time you trigger it: nothing stops a second avsb.track.event() call from firing, so watching the console for it (step 4) keeps working even after you have already converted once. But the results count only takes the first conversion per visitor per metric, so it will not move. If you already converted while setting up the experiment (by accident or on purpose), that is why the number will not budge no matter how many more times you trigger it. To test from scratch with a fresh visitor, clear the _avsb_visitor cookie. The steps are below.

For step 1, when reviewing the metric configuration:

  • Click metrics: verify the CSS selector is correct and the URL pattern matches the page where the element lives.
  • Pageview metrics: verify the URL pattern matches the thank-you page, confirmation page, or success URL that a converted visitor lands on.
  • Custom events: confirm that the short ID shown in the metric matches what you are passing to avsb.track.event() in your code.
  1. This is the selector to test in the console, exactly as it is typed here.
  2. If this is set, the click only counts on a matching page.

For step 2, test your selector in the console:

JavaScript
// Replace with your actual CSS selectordocument.querySelectorAll('.cta-button');
JavaScript2 lines

For step 3, the URL match types are:

  • Exact match requires the full path to match precisely, including any query parameters if they are in the pattern.
  • Substring match requires the pattern to appear anywhere in the URL.
  • Regex match requires the URL to match the regular expression.

For step 4, add a temporary log before your track call:

JavaScript
// Temporarily add a log before your track callconsole.log('About to fire conversion for signup_completed');avsb.track.event('signup_completed');
JavaScript3 lines

For step 6, clear the _avsb_visitor cookie like this:

  1. Open DevTools → Application tab.
  2. Expand Cookies in the left panel and select your domain.
  3. Delete the _avsb_visitor cookie.
  4. Reload the page and try the conversion again.
Info

After clearing the cookie, you will be assigned a new visitor ID. You may be bucketed into a different variation than before; this is normal.

The once-per-visitor rule

It is worth understanding that A vs B intentionally records each conversion metric at most once per visitor. Conversion rates in A/B testing are calculated as:

Plain text
Conversion rate = Visitors who converted ÷ Total visitors
Plain text1 line

Not as:

Plain text
Conversion rate = Total conversion events ÷ Total pageviews
Plain text1 line

This means a visitor who clicks the buy button ten times in one session still counts as one conversion. This is the statistically correct way to run an A/B test: it prevents power users from skewing results.

Use the browser console to verify track.event calls

The fastest way to debug a missing conversion is to open the DevTools console and watch for any output while you manually perform the conversion action. If you are using the Chrome extension, its Events tab will also show a real-time feed of any conversion events that fire; keep the popup open while testing.

Was this helpful?