What this demonstrates

Placements do not have to exist at first paint. A local signal gates two extra <ezoic-ad> placements that mount after the reader clicks "Load more content"; the SDK requests the newly mounted placeholders in a batched follow-up call — the same pattern as loading a comment thread or an infinite-scroll section.
Integration used on this page
// dynamic.component.ts — a local signal gates the extra placements
protected readonly showMore = signal(false);

<!-- template -->
@if (showMore()) {
  <ezoic-ad [id]="915" [required]="true" [sizes]="['300x250', '336x280']" />
  <ezoic-ad [id]="916" [required]="true" [sizes]="['300x250']" />
}

View source on GitHub →

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