Publisher Terms
Draft: pending legal review. This is a working draft. It is not legal advice and is not yet in force. Highlighted text in brackets is a placeholder to fill in ([like this]) or an open business decision ([Decision: like this]). Purple "Drafting note" boxes are for reviewers and must be removed before publishing.
These terms apply when you add a game to Bonus Round and show ads in it. They add to our Terms of Service. In these terms, "you" is the game developer or studio, also called the "publisher".
The short version
- Only add games you own or have the right to monetise, on domains you control.
- Our AI agent will play your game. If you give it a test login, use a dedicated test account.
- New games start in test mode, which is never billed and never paid. Turn it off when you're ready.
- You earn 70% of net revenue on your game: media spend minus any disclosed agency commission. Earnings become available 30 days after they are earned, and you can withdraw once you have at least $50.
- No fake traffic: no self-clicking, bots, incentivised clicks or spoofed sites. We don't pay for invalid traffic.
- Tell your players about Bonus Round in your privacy notice, and get consent where the law requires it.
Adding a game
- You may add only games that you own or have the right to monetise with ads, and only on domains you control. You confirm that showing ads in the game doesn't breach any agreement you have with anyone else (for example, a game portal, a publisher or an engine licence).
- Give the game's real URL and list every domain it runs on. Our SDK reports the page origin, and we only serve paid ads on registered domains.
- Rating, categories and audience. Our play agent proposes a content rating (
everyone,teenormature), categories and an audience. You must check them and correct anything wrong. Brand-safety rules depend on them, so keep them accurate as your game changes. If your game is directed at children, or you know a meaningful share of its players are under 13 (or under the age of digital consent where they live), you must turn on the game's directed to children setting, rate iteveryoneand add thekidscategory. - Your game must meet the publisher content standards in our Ad Policy. We may decline or remove any game.
The SDK
- We give you a limited, non-exclusive, non-transferable, revocable licence to load the Bonus Round SDK (
br.jsand the files it loads from us) in your enrolled games, and to call its documented functions, for as long as you take part in the programme. - Load the SDK from our servers using the snippet in your dashboard. Don't modify, self-host or proxy it, and don't change how it measures or reports events, unless we agree in writing.
- Don't use the SDK in a way that hides, covers, shrinks, auto-skips or interferes with an ad, or that misrepresents it as something other than a sponsored round.
- We may update the SDK at any time, for example to fix bugs, improve measurement or meet legal requirements.
Agent learning and test logins
To match brands to your game and design ads that fit it, our AI play agent visits your game in an automated browser and plays it like a new player.
- What you authorise. You authorise us to access, load and play your game with automated browsers, as often as needed to provide the service (for example, when you first install the SDK, when you ask us to re-learn the game, and to preview and play-test ads), and to record screenshots, text visible on the page, 3D scene data and gameplay measurements.
- Game materials licence. You grant us a non-exclusive, worldwide, royalty-free licence to use what our agent captures from your game, including screenshots, scene data, art style, and the player character's 3D model when it can be exported (we strip name tags, text sprites, cameras and lights from it first), to analyse your game, show it to matching brands in the dashboard, design and generate ads for it, and preview ads over your game in test links and review tools. We won't use your game materials for any other game.
- Test logins. If your game needs a login, you may give us a test account (login URL, username, password and notes). Use a dedicated test account that holds no real personal data and has no admin or payment rights. Never give us your own or a player's credentials. We store the login encrypted (AES-256-GCM), the agent types it in through a tool that never shows the values to the AI model, and we never show it back to anyone, including you. You can delete it at any time in the dashboard or with
DELETE /api/games/:id/agent-login. Your notes are shown to the AI model, so don't put secrets in them. - Other players. If your game is multiplayer, our agent may appear to other players as a new player (on our own demo game it uses the name "ScoutAI"). It won't chat with or target other players. If your game's rules forbid bots, give us a test environment or tell us not to play the live game. [Decision: Whether to add an option to label the agent as a bot, or to play only in a private test lobby]
- Agent learning is included in the platform fee. There is no separate charge.
Test mode
- Every new game starts in test mode. In test mode the game is served only our house test ad, featuring the fictional brand Fizzpop Soda, so you can see a real Bonus Round in your game straight away.
- Test-mode traffic, and any ad request your code marks as a test, is never billed to an advertiser and never paid out to you. It is recorded as test traffic, separately from paid traffic.
- Switch test mode off in the dashboard (or with the API) only when the game is live for real players. Don't send test traffic to a live game to inflate numbers.
Ad formats and your controls
You choose which formats run and how often:
- Takeover (the Bonus Round): a 15-second sponsored round. It can start at a natural break you trigger (
intermission), be offered every few minutes at a safe moment (interval), or be chosen by the player for a reward (rewarded). - Ambient: a branded prop or portal in your game world, billed on viewable impressions.
- You can set price floors per format, block advertiser categories, set an hourly frequency cap per player, and pause a format or the whole game at any time. Changes apply to the next ad request.
- Rewarded rounds. If you give a reward, give it for playing the round (when the SDK calls your
onReward). Never make a reward depend on clicking the ad's call to action.
Revenue share
- You earn 70% of net revenue on your game, and Bonus Round keeps the other 30% of net revenue as its platform fee. The fee covers ad serving, our agents, creative generation and payment processing for advertisers. There is no separate charge for generation. [Decision: Confirm whether Stripe payout fees, currency conversion or taxes are deducted from the 70% share]
- "Media spend" means the amount actually charged to an advertiser for billable events in your game: viewable impressions, engagements or clicks, depending on how the campaign bids. It excludes test-mode traffic, events we find to be invalid, and anything an advertiser could not be charged because its prepaid balance had run out.
- "Net revenue" means media spend minus any disclosed agency commission. When a campaign is placed by an advertising agency through Bonus Round (see Advertiser Terms: agency commission), the agency earns a commission of 15% of that campaign's media spend, which is shown to the advertiser. Your 70% is calculated on what remains. For example, on US$100 of agency-placed media spend the agency earns US$15.00, you earn US$59.50 and Bonus Round keeps US$25.50. On all other spend there is no agency commission, so net revenue equals media spend and you earn US$70.00 of every US$100. [Decision: Confirm the 15% agency commission rate, and whether it may change for new campaigns with notice to developers]
- Each billable event is split as it happens between you, us and, for agency-placed spend, the agency, and every share is recorded in our ledger. Shares are calculated in millionths of a US dollar. On agency-placed spend the agency commission and your share are each rounded down to the nearest millionth and any remainder goes to Bonus Round. On other spend your share is rounded to the nearest millionth. Your earnings report shows agency-placed revenue separately: what the brand paid, the agency commission and your share.
- The price per event comes from our second-price auction and is never below the floor you set (or our platform minimum, if higher). We don't guarantee any fill rate, price or level of earnings.
- Our measurement is the basis for earnings. If you think a figure is wrong, tell us within [Decision: Window for disputing earnings statements (60 days proposed)] of the end of the month in question.
Payments and payouts
- Net-30. Each earning becomes available to withdraw 30 days after it is earned. Until then it shows as pending.
- Minimum. You can request a payout once at least US$50 is available. Each payout must be at least US$50.
- How you're paid. Payouts go to a Stripe Connect Express account in your name. Stripe will ask you for identity, bank and tax details, and you must accept Stripe's Connected Account Agreement. We can't pay you until Stripe has enabled payouts on your account. If a transfer fails, the amount goes back to your available balance.
- Currency. Earnings are calculated and paid in US dollars. Stripe may convert them into your local currency at its rates.
- Taxes. You are responsible for taxes on your earnings. We may need tax forms or information from you (for example, a W-9 or W-8BEN) and may withhold amounts where the law requires. [Decision: Tax-form collection and any withholding process, e.g. via Stripe]
- Holds. We may hold or reverse earnings that come from invalid traffic, from a breach of these terms, or from an advertiser payment that is refunded, reversed or charged back. We will tell you why.
- Unclaimed balances. [Decision: Policy for small or unclaimed balances when an account is closed or dormant, e.g. paid out if at least US$50, otherwise forfeited after N months, subject to local law]
Launch offer for invited developers
This is a limited promotional offer, separate from the standard revenue share. We sometimes invite developers whose three.js games we've found and played to try Bonus Round. An invitation comes as a private link from a Bonus Round founder, showing a Bonus Round round recorded inside your game.
- The offer. When you claim your game through an invitation, add the SDK and switch the game out of test mode, Bonus Round runs its own campaign ("Bonus Round × your game") in your game with a launch budget of [Decision: launch budget amount, currently configured as US$50 (PROSPECT_BOUNTY_USD)]. You earn the normal 70% of net revenue on what that campaign spends, through the same ledger, net-30 and payout rules as any other earnings.
- Duration. The campaign runs for [Decision: offer duration, currently configured as 30 days from claiming (PROSPECT_BOUNTY_DAYS)] or until its budget is spent, whichever comes first. [Decision: whether any unspent launch budget is guaranteed to the developer at the end of the period (for example paid as a one-off adjustment) or simply lapses]
- Eligibility. [Decision: eligibility rules, e.g. one launch offer per developer and per game, invited developers only, the game must be publicly playable without a login and be eligible for ads, minimum genuine player traffic, no invalid traffic, and whether the offer must be claimed within N days of the invitation]
- Payouts. Earnings from the launch campaign accrue in your balance straight away. [Decision: payouts start once Stripe Connect is live for Bonus Round; confirm the launch date and whether earnings accrued before then are paid in the first payout]
- Invalid traffic. The rules in Invalid traffic and prohibited practices apply in full; we don't pay for invalid events on the launch campaign either.
- The invitation video. The video in your invitation is private. We only use it publicly (for example on our site or social media) if you tick the consent box when you claim your game, and you can withdraw that consent at any time. If you tell us you're not interested, we add you to our do-not-contact list and won't message you again.
- We may change or end this offer for new invitations at any time; a launch campaign already created for your game keeps the terms in force when you claimed it. [Decision: confirm]
Invalid traffic and prohibited practices
Advertisers pay only for real players genuinely engaging with ads. You must not, and must not let anyone else:
- click, engage with or play your own ads, or ask friends, testers or communities to do so (except in test mode);
- use bots, scripts, emulators, automated browsers, click farms, incentivised traffic services or anything else that creates ad events not caused by a real person playing;
- offer rewards, currency or other incentives for clicking an ad's call to action, or tell players to click it;
- call
BonusRound.break(), the interval trigger or rewarded rounds in a way that doesn't match real natural breaks or real player choices, for example in a loop, on page load, or while the game is hidden; - run the SDK on a page or domain that isn't registered to the game, spoof the page origin or another publisher's ID, or put your publisher ID on someone else's site;
- hide, stack, shrink or cover ads, or show them in invisible or off-screen frames, or auto-refresh the page to generate requests;
- tamper with ad tokens, measurement or events, or replay them;
- mislead players about what a sponsored round is; or
- buy traffic for your game in ways that break the rules above.
Our ad server records at most one event of each type per ad served, rejects expired or tampered tokens, and may apply further detection. [Decision: Invalid-traffic policy: detection methods, adjustment window, and whether advertisers are credited automatically for invalid events found after billing] We may withhold or reverse earnings from invalid traffic, and may suspend or close games or accounts involved, as described in the Terms of Service.
ads.txt
- Your dashboard gives you an ads.txt line for each game, in the form
bonusround.io, pub_XXXXXXXX, DIRECT. You can also fetch it from/v1/ads.txt?pub=pub_XXXXXXXX. - Add that line to the
ads.txtfile at the root of each domain where your game runs, and keep it there while you show Bonus Round ads. Remove it if you stop. - Keep your ads.txt file accurate. Don't list Bonus Round for domains that aren't enrolled, or list other sellers as authorised to sell Bonus Round inventory. [Decision: Whether a missing or incorrect ads.txt entry will stop paid ads being served, once implemented]
Your players' privacy
- Your game's privacy notice must say that the game uses Bonus Round to show ads, that our SDK stores a random anonymous ID in the browser's local storage to cap and measure ads, and link to our Privacy Policy. [Decision: Provide suggested wording for publishers' privacy notices]
- Consent. In the EU, EEA and UK, storing the anonymous ID in a player's browser may need the player's consent under ePrivacy rules (for example, the UK PECR). Where it does, you are responsible for getting that consent. Use the SDK's no-storage mode until the player consents, then switch storage on. The SDK also honours the browser's Global Privacy Control signal on its own. [Decision: Legal review: whether local storage for frequency capping counts as "strictly necessary"]
- Don't pass any personal information to our SDK, such as player names, emails or account IDs, in any field or URL.
- If a player or parent sends you a request about our data, forward it to aidan@dreampark.app and we will help.
Verify each of these against the shipped code before publishing; they were in progress when this draft was written: the directed-to-children game setting, the SDK's no-storage/consent mode and its GPC handling, and that the load ping now sends the origin only.
Reports and data
We give you reports on requests, fills, impressions, viewability, engagements, clicks and earnings for your games, broken down by day, brand and format. Reports are aggregated and never include individual player IDs. You may use them to run your business, but not to identify players or to build a competing ad product.
Brand safety in your game
Every creative is made for one brand and one game, play-tested automatically and approved by the brand before it serves. You can block categories and pause formats at any time. If you see an ad that shouldn't be in your game, pause it and tell Aidan Wolf, our ad-policy and brand-safety contact, at aidan@dreampark.app, naming the brand. We will investigate and may remove the ad. See our Ad Policy.
Term and termination
- You can remove the SDK and stop taking part at any time. Earnings that are valid and available will be paid in line with the payout rules above. [Decision: Whether a final payout below the US$50 minimum is made on termination]
- We may suspend or end your participation, or a single game, as described in the Terms of Service, including straight away for invalid traffic or a serious breach of the Ad Policy.
- When participation ends, remove the SDK and the ads.txt line. The licence to our SDK ends. Our licence to your game materials continues only as needed to finish reporting and payments, keep records the law requires, and handle disputes.