What this demonstrates

A desktop layout with a main content column and a 300px sidebar. One snippet sits in the content after the first paragraph, and one sits inside the sidebar between two widgets. On desktop the sidebar snippet classifies as a sidebar position; on mobile the column is hidden by CSS and only the label changes.
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>

<!-- In content -->
<script>
  ezstandalone.cmd.push(function () {
    ezstandalone.showAds({sizes: "300x250"});
  });
</script>

<!-- In the sidebar -->
<script>
  ezstandalone.cmd.push(function () {
    ezstandalone.showAds({sizes: "300x600"});
  });
</script>

View source on GitHub →

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

Two-column layout with a sidebar snippet

This desktop layout has a main content column and a 300px sidebar. One snippet sits in the content after this first paragraph, and one sits inside the sidebar between two widgets.

On a desktop viewport the sidebar snippet should classify as a sidebar position and claim id 903, staying exactly where the script is inside the column. On mobile the column is hidden by CSS; the ad still belongs to the script's spot, only the label changes to a content position.

A third paragraph fills out the main column so the content root is measurably a column beside the sidebar, which the geometry gate uses to accept the sidebar candidate.