NEW The ad network for three.js games

Ads players actually play.

At a natural break, the game becomes a 15-second branded Bonus Round. Players keep their own character and controls. They play the ad instead of skipping it. Your brand gets experienced. Game devs get paid.

Bo looks over any site in about 5 seconds.
Built with love byDreamPark
Psst… it’s playable!
Hop Isle · our multiplayer demo gameReal SDK
A Bonus Round in Hop Isle: players grab cheese puffs in a Cheese Puffs world
  Loading Hop Isle…
Island round, then a sponsored Bonus Round

Cheese Puffs is a fictional demo brand. In test mode, your own game shows a free test ad, so you can see a real round right away.

Watch Bo learn a game

Scroll down a little and watch me learn a real game.
…
How it works

From one URL to a round people play.

You paste a URL. That’s your part. Then our AI agents do the rest. They browse, play, design, build and test. Everything below comes from real runs of our pipeline.

01 · Your one step

Paste a URL.

Bo opens your website and finds your real logo, products and colours. Then it builds your ad kit: billboards, banners and decals from your exact logo file, your product in 3D, and your tagline.

<script async src="https://bonusround.io/v1/br.js" data-pub="pub_…"></script>
BonusRound.attach({ THREE, scene, camera, renderer });
await BonusRound.break('intermission');
Brand: just your websiteOne script tag and two lines of code
Then the agents · learn

They learn the brand and the game.

The brand agent reads your site: palette, logo, tone, products, mascot, and what to avoid. The play agent joins the game as a real player. It tries the controls, measures speed, size and camera, and picks a spot for a prop.

The play agent, ScoutAI, exploring Hop Isle with two other players
Then the agents · build

They build a native 3D ad and play-test it.

Each 15-second round is designed for this game: the mechanic, arena, hero, collectibles and copy. Our own pipeline builds the 3D assets and the music. Then an agent plays the ad in the game and checks it against a checklist before anyone sees it.

Play-test of a generated Cheese Puffs round
Then the players · play

Players play it. You see what happened.

At the next break, everyone drops into the branded arena with their own avatar. They play, see a sponsored leaderboard and head back. You see views, players who joined in, clicks, and earnings per 1,000 views.

Sponsored leaderboard at the end of a Bonus Round
For game developers

Earn from every play.

70%

of net ad revenue goes to you.* Free to join.

You · 70%30%
  • One script tag, two lines.Set it up once. Then tell it when to play.
  • Test it right away.A free test ad plays in your game. Never billed.
  • You choose when ads play.Pick your breaks, or let players opt in for a reward. Set a minimum price and an ad limit.
  • Cash out from $50.See earnings live. They clear after 30 days.
For brands

Ads people choose to play.

  • Your website is the brief.Bo builds the ad from it.
  • Your real logo.Never redrawn by AI. You approve every asset.
  • Only in games that fit.We rate every game and match you to the right ones.
  • Pay for real play.Pay per view, player or click.
  • $20 free to start.Then top up from $50.
Games using Bonus Round

Real three.js games, with a Bonus Round inside.

New games show up here as soon as they add the SDK.

See all games →
    The ad

    Your game becomes the ad. For 15 seconds.

    A Bonus Round turns the game itself into the ad. Scroll through a real one, captured frame by frame in Hop Isle.

    Your game Ad Bonus Round · Cheese Puffs ↩ Back to your game

    Your game.

    A 5-second heads-up.

    Then the game becomes the ad.

    And right back.

    Where it plays

    • Rooftop Rumble
      After a goal.The countdown runs over the replay.BonusRound.break('intermission')
    • Sky Hopper
      Level complete.A 15-second round, then the next level.BonusRound.break('intermission')
    • Turbo TidesIn-world
      Drive past the pier.The pier becomes the ad. The race keeps going.BonusRound.zone('pier')
    • Sky HopperOpt-in
      A second chance.“Play a 15 s Bonus Round to respawn.” It pays the most.BonusRound.rewarded({ onReward })
    The snippet

    One script tag and two lines of code.

    Add the script tag, attach it to your renderer, and tell it when your game takes a break. We handle the rest: selling the slot, making the ad, checking it was seen, and paying you.

    Add your game and get your publisher ID.
    Paste the snippet. The SDK checks in and Bo starts learning your game.
    Play your game. A test ad shows up at your next break.
    <!-- 1. One script tag -->
    <script async src="https://bonusround.io/v1/br.js"
            data-pub="pub_XXXXXXXX"></script>
    Test mode is on until you go live. Test traffic is never billed.
    Integrate with your AI agent

    Just say “Integrate Bonus Round”.

    Your coding agent reads our docs and llms.txt, finds your three.js renderer, adds the snippet and marks a break between rounds. It works with any coding agent that can read a URL.

    Integrate Bonus Round
    Reading bonusround.io/llms.txt…
    Found a WebGLRenderer in src/main.js (three r170)
    ✓ Added br.js to index.html with your pub ID
    ✓ BonusRound.attach({ THREE, scene, camera, renderer })
    ✓ await BonusRound.break('intermission') in endRound()
    Test mode is on. Start a round and you’ll see the
    free test ad at your next break.
    (example session)
    Meet Bo

    Our mascot was made by our own pipeline.

    Bo is an arcade token with a play-button antenna. He started as concept art from our brand kit.

    8,366 triangles · 5 animation clips · 1K WebP textures · about 1 MB

    Bo concept art
    1 · ConceptFrom our brand kit
    Bo as a 3D model in A-pose
    2 · 3D + rigModelled and rigged
    Bo cheering with both arms up
    3 · AnimatedGame-ready on the web
    FAQ

    Questions, answered.

    Is the ad really playable?

    Yes. The round runs inside your game with your player’s own avatar and controls: they move, jump and collect the brand’s items, and their score goes on a sponsored leaderboard. You can play one at the top of this page.

    Will it interrupt my players?

    Only when you say so. You choose when rounds play: at breaks you mark yourself, on a timer, or when a player opts in for a reward. Each round starts with a 5-second heads-up and lasts 15 seconds. Then everyone goes straight back to your game.

    Which games does it work with?

    Any three.js game in the browser. The SDK attaches to your scene, camera and renderer. For rounds inside your own world, you also pass a small host adapter (position, teleport, bounds) so the round uses your physics. Other engines aren’t supported yet.

    What does it cost a game developer?

    Nothing. You keep 70% of net ad revenue: what brands spend in your game, minus a disclosed 15% commission when an ad agency places the campaign. Each earning clears 30 days after you earn it (net-30), and you can cash out once you have $50.

    How do brands pay?

    You prepay into a balance, with one-off top-ups or a monthly plan. Then you bid per 1,000 views (vCPM), per player who joins in (CPE) or per click (CPC). Spending stops when your balance hits zero. Making the ads is included in the platform fee. See pricing.

    What does a brand need to provide?

    Just your website. If your site blocks automated browsing, you can upload your logo and product images after you sign up, and the agents work from those. You review every ad in the real game, and you can share a test link so anyone on your team can play it before it goes live.

    How are ads kept brand-safe?

    The play agent records each game’s content rating and audience. Brands are matched to games by rating, category and style, and developers can block whole categories.

    What data do you collect from players?

    The SDK reports ad events, such as views, time on screen, pickups and clicks. They’re tied to an anonymous player ID, which we use to limit how often one player sees ads. See our privacy policy (draft).

    Your next ad break could be the best part of the game.

    Free for developers. Brands get $20 free to start.