Advanced conversion tracking (reliability, JS, multi-webinar, recurring)

Make the conversion pixel more reliable, inject values with JavaScript, share one pixel across webinars, and track recurring subscriptions.

This article covers the advanced patterns for the conversion tracking pixel: making it reliable, injecting query parameters with JavaScript, firing one pixel across multiple webinars, tracking multiple purchases by the same attendee, and tracking recurring subscriptions. Each section assumes you've already installed the pixel — see Install the conversion tracking code on your checkout page first.

Make the pixel more reliable

The pixel identifies the attendee using a cookie set when they watched the webinar. Modern browsers — Safari in particular — block third-party cookies by default, so the cookie often fails to match. Two fixes, and you should do both whenever possible:

  1. Put eWebinar and your checkout on the same domain. For example, use webinar.mydomain.com for eWebinar and checkout.mydomain.com (or any other subdomain of mydomain.com) for your checkout. The Custom domain add-on is required to use your own domain on eWebinar.
  2. Replace {{email}} in the pixel URL with the buyer's real email using your checkout system's dynamic syntax. Once the pixel has the email, it can match the conversion to the attendee even when the cookie is missing.

Different platforms use different syntax — for example {{email}}, {email}, or {checkout.email}. Check your payment platform's docs for the right one.

Inject query parameters with JavaScript

Some checkout platforms don't support inline placeholders like {{email}}, but they do pass values back on the URL of the success page. In that case, use a <script> block to read the query string and splice the values into the pixel URL:

<script>
window.onload = function () {
  const params = new URLSearchParams(window.location.search);
  const email = encodeURIComponent(params.get('customer_email') || '');
  const orderId = encodeURIComponent(params.get('order') || '');
  const src = 'THE_URL_OF_THE_PIXEL_GOES_HERE'
    .replace('{{email}}', email)
    .replace('{{order_id}}', orderId);
  const img = document.createElement('img');
  img.src = src; img.width = 1; img.height = 1; img.alt = '';
  document.body.appendChild(img);
};
</script>

Replace THE_URL_OF_THE_PIXEL_GOES_HERE with the src URL from the pixel code copied from the interaction.

No success page at all? If the conversion is an action inside your SaaS product (e.g. the user activates a feature), call the pixel URL directly from your own code once the action completes, using the same query-parameter approach.

Fire one pixel across multiple webinars

When several webinars share a checkout flow, you can either paste each webinar's pixel onto the success page, or use a single pixel that covers all of them. Two options:

  • Explicit webinar IDs. Add multiple webinarId= parameters to the pixel URL. For example:
    <img src="https://api.ewebinar.com/v1/conversion/pixel/{teamId}?webinarId=4429&webinarId=2527&email={{email}}&amount={{amount}}&currency=USD" width="1" height="1" alt="" />
  • By tag. Replace webinarId= with tag=. Any webinar with that tag automatically counts — no need to update the pixel when you add a new webinar.
    <img src="https://api.ewebinar.com/v1/conversion/pixel/{teamId}?tag=course_sales&email={{email}}&amount={{amount}}&currency=USD" width="1" height="1" alt="" />

Track multiple purchases by the same attendee

If the same attendee can buy more than once and you want to keep a running total of their spend, replace {{order_id}} with your checkout's real order-ID syntax. Each new order ID is treated as a separate purchase, and eWebinar sums the {{amount}} values into the attendee's total revenue. You can see that total on the attendee's row under Registrants and aggregated on the webinar's Analytics tab.

Track recurring subscriptions

Subscriptions are tricky because the recurring charge usually happens after the trial ends, which is long after the attendee left the pixel-bearing page. You can solve this by calling the pixel URL from your backend (a GET request) whenever a recurring payment succeeds. Pass a different orderId for each month so each payment is treated as a new order and eWebinar keeps accumulating the attendee's LTV:

https://api.ewebinar.com/v1/conversion/pixel/{teamId}?webinarId=4429&email=buyer@example.com&orderId=2026-04-0001&amount=49.99&currency=USD

Because the request comes from your backend, you always have the buyer's email and order ID, so tracking is exact and doesn't depend on cookies.