What this demonstrates

Rewarded ads are imperative. The injected EzoicRewardedService exposes request, show and requestAndShow, each returning a Promise that resolves with the runtime's outcome. Each button logs the resolved status/reward/message. On an Ezoic JS-integrated page withRewardedAds() needs no loader URL — the Ezoic runtime serves the host-correct rewarded loader itself once it initializes.
Integration used on this page
// app.config.ts — no loader URL needed on a JS-integrated page
provideEzoic({}, withRewardedAds())

// rewarded.component.ts — inject the service, await the outcome
private readonly rewarded = inject(EzoicRewardedService);

const outcome = await this.rewarded.requestAndShow({ rewardName: 'demo-reward' });

View source on GitHub →

SDK example source: @ezoic/angular-sdk (examples/site-demos) →