Rewarded Video — Manually Created UI with Conditional Fill
Uses Playwire's Manually Created UI with skipConfirmation: true. On load, Ramp requests an ad via forcePath: 'rewarded-video'. Fill is signaled by rewardedAdVideoRewardReady — only then does the watch button activate. On click, ramp.manuallyCreateRewardUi({ skipConfirmation: true }) plays the ad. Grant the reward inside rewardedAdRewardGranted.
- Rewarded Video does not currently include Ramp House Ads support.
- Append #google_sample_tag=1 to force test ad fill · #google_sample_tag=blank; to force no fill.
- rewardedAdVideoRewardReady is the fill signal. If it never fires after initialization, there was no fill.
- Grant the reward inside rewardedAdRewardGranted — not on ad start.
Ad fetch behavior: If there is no fill, the unit will not request another ad automatically. A new ad is only prefetched after a video is watched to completion. For any other outcome — no fill, early close, or page revisit — a page refresh is required to trigger a new request.
Event log
- Waiting for events…
Implementation
1 — Script setup
// Set before ramp.js loads window.ramp = window.ramp || {}; window.ramp.que = window.ramp.que || []; window.ramp.forcePath = "rewarded-video"; // Injected async in <footer> <script src="https://cdn.intergient.com/343/77873/ramp.js" async></script>
2 — Fill signal
// rewardedAdVideoRewardReady is the fill signal. // If it never fires, there was no fill — the unit will not retry. window.addEventListener("rewardedAdVideoRewardReady", () => { watchAdButton.disabled = false; watchAdButton.textContent = "Watch to Earn Reward"; }); // Start a timeout fallback — if event never fires, handle no-fill state setTimeout(handleNoFill, 5000);
3 — Trigger & reward
// On user click, call manuallyCreateRewardUi with skipConfirmation: true. // You own all UI — Playwire only handles the video playback. watchAdButton.addEventListener("click", () => { ramp.manuallyCreateRewardUi({ skipConfirmation: true }); }); // Grant the reward here — not on ad start window.addEventListener("rewardedAdRewardGranted", () => { // unlock reward: extra life, content access, etc. });
placeholder example (will be replaced by environment variables in the deployment pipeline. see: envsubst)
site_id: 77873
pub_id: 343
paywire_tag_url: https://cdn.intergientdev.com