BB
Lumi SDK

Sign In

Sign in to track earnings and manage your AI app

Loading...
Spins up a synthetic publisher account with $18.9K MRR and a live ad-request feed.
Total Earnings
$0.00
↑ 0% from last month
Impressions
0
↑ 0% from last month
Your Share
85%
RPM
$0.00
↑ 0% from last month
Revenue Over Last 14 Days
Mediation & Waterfall
Sources compete first-price per impression. Benna re-ranks on every bid.
B BENNA AUTO-ORDER · ON
1
Boost Boss Exchange
direct MCP demand · real-time
ECPM (7d)
$4.82
FILL RATE
94.2%
$
2
Direct Deals
PMP · Anthropic, OpenAI, Vercel
ECPM (7d)
$6.14
FILL RATE
28.7%
$
3
House Ads
backfill · your own promotions
ECPM (7d)
$1.20
FILL RATE
100%
$
3rd-party Networks
off by default · enable to test
ECPM (7d)
FILL RATE
$
$4.98
blended eCPM
99.4%
overall fill
842k
auctions / 24h
+18%
Benna vs manual order
Benna auto-order is on. The engine re-ranks demand sources on each impression using MCP context (user intent, tool, host) to maximize your eCPM. Last 7 days: +18% vs fixed waterfall. Turn off to lock the order above.
Integrations

One publisher account, four doors. Click the door you're setting up — the install + code sample appears below. Active doors show last 7 days; "Not started" doors are ready to set up. About each door →

1. Install

npm install @boostbossai/lumi-mcp

2. Wire it into a tool handler

// Inside your existing MCP server's tool handler
import { LumiMCP } from '@boostbossai/lumi-mcp';

const lumi = new LumiMCP({
  publisherId: process.env.BB_PUBLISHER_ID,
  apiKey:      process.env.BB_API_KEY,
});

server.setRequestHandler(CallToolRequestSchema, async (request) => {
  const result = await myToolLogic(request.params.arguments);

  const ad = await lumi.fetchAd({
    context:  request.params.name,
    toolName: request.params.name,
  });

  return {
    content: ad
      ? [...result.content, ad.toMCPBlock()]   // appended, never replaces
      : result.content,
  };
});
toMCPBlock() bakes the disclosure label in. Try sandbox without signup: pass publisherId: "pub_test_demo". Full reference →
Verify your integration
Fire a synthetic ad request to confirm your setup is wired correctly. Per-door badges auto-update as soon as a real event for that door arrives.
MCP Not started
JS Snippet Not started
NPM SDK Not started
REST API Not started
Run a synthetic test
Theme
#FF2D78
Paste into your stylesheet's :root block to apply this theme to all Lumi ads in your app.
Live preview placeholder · run a test to see a real ad
BB Sponsored · via Boost Boss
Your headline appears here
Run a synthetic test to see a real ad rendered with your theme settings.
Try Free →
API Keys & Credentials
API Key
bb_dev_sk••••••••••••••••••
App ID
app_loading
MCP Endpoint URL
https://api.boostboss.ai/mcp
Ad Formats You Accept
Est. monthly income:  (at current volume)
Toggling a format OFF removes that ad type from your auction. Higher-CPM formats (video, fullscreen) pay more but require more user attention — pick based on what fits your product's UX.
Placements
Last 30 days · grouped by placement_id
Loading…
Each row is one slot inside your app. Pass the placement_id to getSponsoredContent() to enable per-slot floors, frequency caps, and reporting. Higher Intent means Benna is matching the right ads to that placement's context.

New Placement

A placement is one ad slot inside your app — chat-inline, sidebar, sponsored tool result, etc. Each one gets its own floor, frequency cap, and per-slot reporting.
Bids below this get rejected as no-fill.
Max impressions per anonymous user per day.
Earnings History
Date Impressions Your Earnings Clicks RPM Status
Payout Settings

Earn at least $25 in publisher accruals, connect Stripe, and the next Friday cron pays you out automatically. Most publishers see their first payout 1–3 weeks after installation, depending on traffic.

Next Payout Date
Pending Payout
$0.00
Minimum Threshold
$25.00
Quick Start
const bb = require("@boostbossai/lumi-sdk");

// 1. Authenticate so impressions are attributed to your account.
bb.configure({ apiKey: process.env.BB_API_KEY });

// 2. Request a Benna-ranked ad for the current user context.
const ad = await bb.getSponsoredContent({
  context: "user is debugging a python traceback",
  host:    "your-app.com",
  format:  "native"      // "image" | "video" | "native"
});

// 3. Render and track. SDK fires the impression beacon for you.
if (ad.sponsored) {
  showAd(ad.sponsored);
  bb.trackEvent("impression", ad.sponsored.id);
}
Full Documentation Try in Playground npm Package