Connect a website and show ads on it
publisherAdd a website, prove you control the domain, install the tag and create your first ad slot.
1. Add the website to your dashboard
Every ad placement, analytics report, and marketplace listing in AdServeKit belongs to a registered Website. Adding your site is the first step before you can serve house ads or monetize through direct advertiser campaigns.
In the sidebar, navigate to Websites and click Add website. Enter the Display Name you want to see in reports and the Primary Domain (for example, example.com) without https:// or trailing slashes.
If your website serves traffic across multiple domains or subdomains (such as www.example.com, m.example.com, or staging.example.com), list them under Authorized Domains. AdServeKit verifies incoming ad requests against this list and rejects requests originating from unlisted hostnames.
Click Save. Your website record is created immediately in an Unverified status.
- Open Websites in the sidebar and click Add website.
- Enter your website's Display Name and Primary Domain.
- Add any additional hostnames (e.g. www, staging) to Authorized Domains.
- Click Save.
2. Prove you control the domain (Verification)
Domain verification confirms that you control the hostname where ads will be served. AdServeKit requires verification before live ad delivery can begin or before you can list properties on the marketplace. It is a technical ownership check, not an editorial review.
Open your website record and navigate to the Verification tab. Choose one of three verification methods:
Method A: DNS TXT Record (Recommended) — Add a TXT record to your domain DNS via your registrar (Cloudflare, Namecheap, GoDaddy). Set the Host to @ and Value to the unique verification token shown in your dashboard.
Method B: HTML Meta Tag — Paste the provided <meta name="adservekit-verification" content="..."> tag into the <head> section of your website homepage.
Method C: Well-Known Verification File — Upload the provided plain text file to https://yourdomain.com/.well-known/adservekit-verification.txt on your web server.
Once published, click Check Verification. When verified, your site status updates to Active & Verified.
Domain verification requires the workspace Owner or Manager role. If the verification button is disabled, check your workspace permissions.
3. Create your advertising spaces (Placements)
A Placement represents a physical location on your web page where an advertisement will appear — such as a header banner, a sidebar box, or an in-article card. Each placement has its own settings, supported sizes, and embed code.
Navigate to Placements in the sidebar and click New placement. Select your verified website and give the placement a clear name (for example, Article Header Leaderboard).
Select the Supported Dimensions that this slot can accept. You can choose standard fixed IAB sizes (300x250, 728x90, 160x600, 320x50) or responsive formats (responsive-article, responsive-banner).
Configure placement behaviors:
- Responsive Scaling: Choose fluid (scales smoothly with container width) or best_fit (selects the closest standard size).
- Collapse When Empty: Automatically collapses the container to zero height if no eligible ad fills the slot, preventing blank spaces.
- Lazy Loading: Delays ad requests until the visitor scrolls within 200px of the placement, improving initial page load performance.
- Fallback Creative: Optionally select an internal house ad to display whenever no paid campaign is eligible.
- Open Placements and click New placement.
- Choose your website, enter a descriptive placement name, and select supported sizes.
- Configure collapse when empty, lazy loading, and optional fallback creative.
- Click Save to generate your placement ID and code snippet.
4. Install the ad delivery tag on your website
AdServeKit provides two distinct scripts that perform different tasks: ad.js is the ad delivery loader that requests and renders advertisements in your slots. houseads.js is the first-party measurement tag that tracks pageviews, sessions, and conversions. A site serving ads needs ad.js; a site wanting analytics needs houseads.js; a site wanting both installs both.
Add the delivery loader once per page in your website template, preferably in the <head> or immediately before the closing </body> tag.
Place the placement container <div> into your HTML exactly where the advertisement should appear. Always specify data-height to prevent Content Layout Shift (CLS) while the ad loads.
Example delivery loader and ad slot container
<!-- 1. Load the delivery script once per page -->
<script async src="https://api.adservekit.com/ad.js"></script>
<!-- 2. Place your ad slot where the ad should display -->
<div class="house-ad-slot"
data-placement="plc_YOUR_PLACEMENT_ID"
data-width="300"
data-height="250">
</div>Load ad.js only once per page. If multiple copies of ad.js are included, conflicting loaders can cause ad requests to fail with INVALID_DELIVERY.
5. Verify live delivery with the on-page debugger
Once your tag is installed, verify that ads are serving properly on your live website. Open your page in your browser and append ?adserve_debug=1 to the URL (for example, https://example.com/page?adserve_debug=1).
The on-page AdServeKit Debugger bar will appear over your page, highlighting every ad slot with a diagnostic border. Click on any slot to inspect the delivery result, latency, active campaign ID, and creative dimensions.
If the slot is empty, the debugger displays the exact reason code (such as NO_ELIGIBLE_CAMPAIGN or SIZE_MISMATCH) so you can fix it immediately.
Troubleshooting common installation issues
If domain verification fails: Verify that your DNS TXT record has propagated (can take up to 15 minutes) or that your meta tag is present in the server-rendered HTML rather than injected via client-side JavaScript.
If the ad slot is blank: Open the page with ?adserve_debug=1. Check whether an active campaign is attached to this placement, whether the creative is Published, and whether creative dimensions match the placement.
If requests return INVALID_DELIVERY: Ensure the hostname in your browser address bar matches the Primary Domain or one of the Authorized Domains configured in your website settings.