Platform: Wistia
Testing: Wistia E-v1.js API detection and event tracking
Duration: ~140s (milestones at ~35 / 70 / 105 / 126s) — long enough to test seek-gated progress: scrub to a spot, release, expect ONE milestone at the drop point.
Real sites duplicate one video (a carousel that clones slides, a repeated CTA block). Wistia
builds a SEPARATE player for each, both reporting the same hashed id. Play THIS one: it must
emit its own vpl / vpg / ven with
vid=342jss6yh5, independently of the player above.
Media ID: 342jss6yh5
Title: The Wistia Team Intro (~140s)
Embed Type: Async embed with E-v1.js
window.Wistia or window._wq global objects,
iframe patterns matching wistia.com or wistia.net,
or elements with .wistia_embed / [class*="wistia_async"]
Wistia uses a queue-based API:
window._wq = window._wq || [];
_wq.push({ id: "342jss6yh5", onReady: function(video) {
video.bind('play', function() { console.log('Playing'); });
video.bind('pause', function() { console.log('Paused'); });
video.bind('end', function() { console.log('Ended'); });
}});
Wistia Turnstile is configured in the Wistia dashboard — it can't be enabled via embed code alone. Use these buttons to simulate what happens when Turnstile captures a lead.
// SDK method path:
_ll.video.lead({ platform: 'wis', email: '...', video_id: '342jss6yh5' })
// → emits: vle (video_lead) + pp (possible_person)
// Player event path (what Wistia Turnstile actually fires):
// adapter binds to 'turnstile-submit' → onLead → vle + pp