What this demonstrates

The canonical simple setup: an ordinary article with one plain showAds snippet pasted between two paragraphs. No placeholder divs, nothing configured in a dashboard. The ad renders exactly where the script sits — between the second and third paragraphs — labeled under_second_paragraph and resolved to a generated 900-series id.
Integration used on this page
<!-- Head: consent + Ezoic standalone loader -->
<script data-cfasync="false" src="https://cmp.gatekeeperconsent.com/min.js"></script>
<script data-cfasync="false" src="https://the.gatekeeperconsent.com/cmp.min.js"></script>
<script async src="//www.ezojs.com/ezoic/sa.min.js"></script>
<script>
  window.ezstandalone = window.ezstandalone || {};
  ezstandalone.cmd = ezstandalone.cmd || [];
</script>

<!-- Body: paste where you want the ad -->
<script>
  ezstandalone.cmd.push(function () {
    ezstandalone.showAds({sizes: "300x250"});
  });
</script>

View source on GitHub →

Docs: Ad Placements — Simple Setup (No Placement IDs)

The canonical simple setup

This page is exactly what the simple setup looks like: an ordinary article with one plain snippet pasted between two paragraphs. There are no placeholder divs anywhere and nothing is configured in a dashboard for this spot.

The paragraph above is the first real content block and this one is the second. The snippet sits right below this paragraph, so the ad should appear exactly here — between the second and third paragraphs — labeled under_second_paragraph and resolved to a generated 900-series id.

This third paragraph continues after the ad spot. If the placement worked, the outlined div sits directly above this text with the snippet script as its previous sibling.

A final paragraph keeps the article long enough that paragraph counting has something to work with and the page looks like real content rather than a fixture.