Blockchain-Ads offers publishers a streamlined way to monetize their inventory through Real-Time Bidding (RTB). This guide explains RTB basics, how it works in our system, integration details, and what to expect from bids.
What is Real-Time Bidding (RTB)?
RTB is a programmatic advertising process where ad impressions are auctioned in real-time as users load your website or app. Auctions happen in milliseconds, allowing advertisers to bid on specific ad slots based on user data, context, and targeting criteria. This ensures efficient ad placement and helps publishers maximize revenue from high-quality bids.
At Blockchain-Ads, we follow the IAB OpenRTB standard, with the latest widely used specification being OpenRTB 2.5 (JSON-based). This standardizes communication between publishers (via Supply-Side Platforms or SSPs) and advertisers (via Demand-Side Platforms or DSPs).
Key Benefits for Publishers:
- Access to premium advertisers in verticals like crypto, fintech, gambling, and more.
- Real-time revenue optimization without manual negotiations.
- Transparent auction mechanics to ensure fair pricing.
Getting Started with RTB Integration
To participate in RTB auctions, publishers send bid requests to our endpoint. Use the following URL for bidding:
Publisher Bidding URL: https://server.blockchain-ads.com/www/delivery/rtb.php
Integrate this into your ad server or SSP setup. Ensure your system generates unique auction IDs and includes all required fields for successful processing.
Sample Bid Request (OpenRTB 2.5)
A bid request is a JSON object sent when an ad slot becomes available. It describes the impression, user, device, and auction details. Here's a sample:
{
"id": "auction-1234567890",
"imp": [{
"id": "129",
"banner": {
"w": 300,
"h": 250,
"pos": 1
},
"bidfloor": 0.5
}],
"site": {
"id": "9876",
"name": "Example Publisher",
"domain": "example.com",
"page": "https://example.com/article123"
},
"device": {
"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"ip": "192.168.1.1"
},
"user": {
"id": "user123"
},
"at": 2,
"tmax": 120
}
Required Fields
- id (string): Unique Auction ID generated per request.
- imp (array): Impression objects; each imp.id maps to your internal Zone ID for the ad slot.
- device.ip (string): User's IP address for geolocation and targeting.
Key Parts Explained
- id: Tracks the auction.
- imp: Defines ad slot details like size, position, and floor price.
- site / app: Provides site or app context for relevance.
- device: Includes user-agent and IP for device targeting.
- user: User ID for personalized bidding.
- at: Auction type (2 = second-price auction, where the winner pays the second-highest bid).
- tmax: Maximum response time in milliseconds (e.g., 120ms).
Sample Bid Response (OpenRTB 2.5)
If your bid request meets our criteria, we'll return a response with the winning ad. Here's a sample:
{
"id": "1234567890",
"seatbid": [{
"seat": "DSP1",
"bid": [{
"id": "129",
"impid": "1",
"price": 1.25,
"adm": "<a href='https://server.blockchain-ads.com/www/delivery/bcl.php?bannerid=1536&zoneid=129&OXLCA=1&sig=d63b5fdbad4b53ca96d7006c782849d7dd3dc7125b412a00b82ac94ee93ab1c0&oadest=https://evopartners.xyz/tddedf603?bca_ID=10410'><img src='https://cdn.adserver.com/banner123.jpg' width='300' height='250'></a>",
"adomain": ["evopartners.xyz"],
"iurl": "https://server.blockchain-ads.com/www/images/banner123.jpg",
"cid": "14123",
"crid": "1536",
"w": 300,
"h": 250
}]
}],
"bidid": "response123"
}
Key Parts Explained
- seatbid: Contains bids from DSPs.
- bid.price: CPM bid in USD.
- adm: Ad markup (HTML/JS for display; VAST for video).
- adomain: Advertiser domain (required by IAB).
- cid / crid: Campaign and creative IDs.
- w, h: Ad dimensions to match your slot.
Current Workflow (Simplified RTB Logic)
Our system uses a simplified RTB approach with a static CPM threshold applied across all campaigns and publishers. This isn't a full dynamic auction but ensures quick, reliable ad delivery.
How It Works:
- You send a bid request with your floor price (e.g., bidfloor).
- We compare it against our fixed CPM price.
- If your floor is ≥ our CPM, we return an ad via the bid response.
- If lower, no ad is served (the slot can pass to other networks).
This model prioritizes quality matches while keeping things efficient.
Future Enhancements
We're planning to introduce dynamic CPM pricing per publisher account. This would allow custom thresholds based on your inventory quality, traffic, or preferences. Our logic would then compare bids against your specific value, offering more flexibility and potentially higher earnings.
FAQs
What if my bid request is invalid? We'll return an error. Ensure all required fields are included and formatted correctly.
How do I test integration? Use sandbox mode or contact our team for sample requests. Monitor logs for response times under tmax.
Does Blockchain-Ads support app inventory? Yes, use the app object instead of site in requests for mobile apps.
What CPM can I expect? Our static threshold ensures competitive rates, often $20+ in premium verticals, but varies by traffic quality.