SDK Demo · Mainnet
Live Integration Test

On-Chain Ads that Pay Your Users

This page demonstrates the avp.js SDK running against mainnet ICP canisters. Sign in with Internet Identity to start earning ICP per verified impression.

1
Ad loads anonymously
2
Earn prompt appears
3
Sign in with II
4
Impression recorded on-chain
Ad Layouts
Banner Ad
Inline banner — renders within page content. Dwell: 5 seconds.
BANNER
Impression records after 5 seconds of continuous viewport visibility
Native Ad
Content-style card that blends with publisher UI. Dwell: 3 seconds.
NATIVE
Impression records after 3 seconds of viewport visibility
Modal Ad
Centered overlay with backdrop. Close button unlocks after 3-second dwell.
MODAL
Close button is disabled until impression dwell is satisfied
Interstitial Ad
Full-viewport takeover with countdown. Skip button after 3 seconds.
INTERSTITIAL
Skip button appears after 3-second countdown
Integration Details

Canister IDs

ad_registry 62qi5-baaaa-aaaab-af2ka-cai
user_canister 6usfv-2qaaa-aaaab-af2la-cai
publisher_registry 6ttdb-xiaaa-aaaab-af2lq-cai
contract_canister 65roj-myaaa-aaaab-af2kq-cai
payment_settlement 765hp-yaaaa-aaaab-af2ma-cai
publisher 736t5-dzec2-w5n3s-2p2mq-jvw6q-6etkw-qcqwt-6nvjf-s3tf3-ifkbo-uqe

Impression Flow

🔍
requestAd — query call to ad_registry, ~200ms
🔐
Hash check — SHA-256 verified before render
Dwell timer — layout threshold from platform_config
📝
recordImpression — update call to user_canister, ~2s
💰
Settlement — ICP credited after 48hr fraud hold

Script Tag Integration

<script async src="https://cdn.advantageprotocol.io/avp.js"
  data-publisher-id="YOUR_PUBLISHER_PRINCIPAL"
  data-slot="banner_bottom"
  data-layout="Banner"
  data-earn-prompt="inline"
  data-earn-prompt-delay="8000">
</script>
<div id="avp-slot-banner_bottom"></div>