Note
Advantage + High Impact JS → High Impact JS
Advantage and High Impact JS have merged into a single, unified library: High Impact JS.
Learn more at highimpact.org.
highimpact.js is the open-source JavaScript library that connects publishers and advertisers through a unified, standards-based API for high-impact ad formats — enabling attention-driven advertising without the fragmentation, vendor lock-in, or security trade-offs that come with traditional integrations.
highimpact.js sits between your site and the ad formats running on it. It provides a single, consistent interface for integrating high-impact formats — regardless of which ad tech platform delivers them.
- Unified API — one integration covers all high-impact formats and platforms
- Secure by default — sandboxed communication between page and ad creative
- Publisher control — configure behavior, constraints, and fallbacks on your own terms
- Ad server agnostic — works alongside GAM, Prebid, and any standards-based setup
- Typed & tree-shakeable — full TypeScript support, ESM and CJS builds included
High-impact advertising works. Attention-driven formats consistently outperform standard display on every metric that matters — viewability, recall, engagement. But implementing them has historically meant accepting a mess: one-off vendor scripts, opaque iframe communication, inconsistent behavior across formats, and security risks from unconstrained creative code.
highimpact.js was built to fix that. It formalizes the contract between publisher and ad creative so that high-impact formats can be delivered safely, predictably, and at scale — without surrendering control of your site to the ad server.
Note
Package names during rename transition
The library is being renamed from Advantage to highimpact.js. Dual-published packages are available during the transition.
Internal code, class names, and element names (e.g. Advantage, <advantage-wrapper>) still reflect the old name and will be updated in a future release.
# new name
npm install highimpact.js
# or legacy name (identical package)
npm install @get-advantage/advantageimport { Advantage } from "highimpact.js";
const advantage = new Advantage();
await advantage.setup();Wrap any ad slot you want highimpact.js to manage with the <advantage-wrapper> element:
<advantage-wrapper>
<!-- your ad slot here -->
<div id="ad-unit-top"></div>
</advantage-wrapper>That's it. highimpact.js handles format negotiation, creative communication, and lifecycle management from there.
Read the full documentation for configuration options, format guides, and advanced usage.
Any kind of positive contribution is welcome. Please help us grow by contributing to the project.
Please read
CONTRIBUTINGfor details on ourCODE OF CONDUCT, and the process for submitting pull requests.
Interested in becoming a maintainer? Check out our Governance and Maintainers documentation.
New to Open Source? Follow this guide to get started.
Thanks goes to these wonderful people (emoji key):
Patrik Wilhelmsson 📖 🤔 |
Pontus Armini 💻 📖 🤔 |
Rebecka Sjöström 📖 🤔 |
Daniel Granlund 🎨 |
Joakim Sannheim 💻 |
erikarvidssonmadington 🤔 |
Linus Forsell 📖 🤔 💻 |
Nicolay Kjærnet 💻 📖 🤔 |
Patrik Eriksson 💻 📖 🤔 |
Billy Ohgren 💻 📖 🤔 |
MIT — see LICENSE for details.