Developers
Integrate in 5 minutes. It works.
Ads on your site or app with a tag or an SDK, or through the API if you want full control. Test mode, ready-made examples and a reference generated from OpenAPI.
One line in head, one placeholder
The tag.js discovers slots, calls /serve, renders in a sandboxed iframe (anti-XSS) and measures impression and click. Zero business logic on the client.
Test modeOpenAPIWeb SDK
<!-- in <head> -->
<script async src="https://cdn.adpluga.com/v1/tag.js"
data-adpluga-key="pk_test_•••"></script>
<!-- wherever the ad should render -->
<div data-adpluga-slot="slot_home_top"></div>Many paths, the same /serve
JS Tag
For sites/e-commerce. Paste and it works.
React / SPA
The adpluga-slot element from the @adpluga/web package, React-ready.
iframe / GTM
Restricted CSP or via Google Tag Manager.
Direct API
Server-to-server, email, AMP, native app.
Main endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/serve | Decides and returns an ad + token (never empty) |
| POST | /v1/track | Records impression/click/conversion (signed) |
| GET | /v1/campaigns | Lists client campaigns |
| POST | /v1/campaigns | Creates campaign (budget, model, targeting) |
| GET | /v1/reports/daily-stats | Sliceable metrics for BI (supports ?mode=live|test) |
| GET | /v1/integration/status | Slot integration status (live/test) |
| GET | /v1/integration/events | Latest integration events (impressions/clicks/conversions) |
| POST | /v1/integration/send-test-event | Emits a synthetic is_test=true event to validate the integration |
| POST | /v1/sdk-keys/{id}/rotate | Rotates the SDK key (revokes the previous, issues a new one) |
Full reference generated from openapi.yaml with try-it. Authenticated by publishable key (client) and secret key (server).