ProductsServicesDocsPricingAboutContact Log in Sign up

CTA Overlays

Three CTA overlays configured: a timed promo banner (5s–12s), a persistent subscribe pill (from 3s), and an end-screen with a sign-up button.

Source code

<link rel="stylesheet" href="https://cdn.impossible.io/support/fxplayer.css" />
<script src="https://cdn.impossible.io/fxplayer/v3/fxplayer.js"></script>

<div id="player" style="width: 720px; aspect-ratio: 16/9;"></div>

<script>
  const player = new fxplayer.FXPlayer('player', {
    src: 'https://www.w3schools.com/html/mov_bbb.mp4',
    controls: true,
  });

  // Timed CTA: show a promo between 5s and 12s
  player.addCTA('promo', {
    content: '<div class="promo-banner">50% Off</div>',
    startTime: 5,
    endTime: 12,
    position: 'center',
    dismissible: true,
  });

  // Persistent CTA: appears at 3s, stays until user closes
  player.addCTA('subscribe', {
    content: '<div class="subscribe-pill">Subscribe</div>',
    startTime: 3,
    position: 'bottom',
    dismissible: true,
  });

  // End-screen CTA: shown when video finishes
  const endScreen = document.createElement('div');
  endScreen.className = 'end-screen';
  endScreen.innerHTML = '<h2>Enjoyed the video?</h2>'
    + '<button onclick="alert(\'Signed up!\')">Sign Up</button>';

  player.addCTA('end-screen', {
    content: endScreen,
    position: 'center',
    pauseOnShow: true,
    dismissible: false,
  });

  // Hide timed CTAs when end-screen appears
  player.on('ended', () => {
    player.hideCTA('promo');
    player.hideCTA('subscribe');
  });

  // Events
  player.on('cta:show', (d) => console.log('CTA shown:', d.id));
  player.on('cta:hide', (d) => console.log('CTA hidden:', d.id));
  player.on('cta:click', (d) => console.log('CTA clicked:', d.id));
</script>