Outbound RTB Guide v4: Selling Calls via Real-Time Bidding
Outbound RTB Guide v4: Selling Calls via Real-Time Bidding
Version: 4.0
Last Updated: March 13, 2026
Audience: Publishers/sellers auctioning calls to multiple buyers
Feedback: [email protected]
Quick Start TL;DR
Outbound RTB in 5 Bullets:
You're the seller — You have calls and want to auction them to buyers
More buyers = higher payouts — Competition drives up bids (1 buyer = discount, not auction)
Start with a template — Use pre-built configurations for major RTB platforms
Test with static values — Put real phone/zip when testing, NOT [CALLER_ID] brackets
Save quickly — RTB Targets can't be saved without response mapping; use templates to avoid timeout issues
Table of Contents
What is Outbound RTB?
When to Use Outbound RTB
Prerequisites
How Outbound RTB Works
Configuration Steps
RTB Templates (Quick Start)
Saving RTB Targets
Testing with Static vs Dynamic Values
Platform-Specific Configuration
Lead Protection (Multi-Step RTB)
Why You Need Multiple Buyers
Real Revenue Example
Timeout Trade-offs
Self-Testing Your Configuration
Monitoring Performance
Optimization Tips
Troubleshooting
FAQ
What's Next
What is Outbound RTB?
Outbound RTB (Real-Time Bidding) allows you to sell calls by auctioning them to multiple buyers in real-time. When you have a call available, you send bid requests to buyers, they respond with offers, and typically the highest bidder wins the call.
You Are the Seller/Publisher
In outbound RTB:
You have calls to sell (from marketing, publishers, campaigns)
You send bid requests to multiple buyers
Buyers respond with how much they'll pay
Highest bidder wins (or you can use other selection criteria)
You earn more than fixed-rate routing by creating buyer competition
Why It's Called "Outbound"
The RTB requests go OUT from your system to buyers. You're sending pings, not receiving them.
When to Use Outbound RTB
Use Outbound RTB When:
✅ You have multiple buyers interested in the same call types (2+ buyers minimum)
✅ You want to maximize revenue by creating buyer competition
✅ Buyer demand fluctuates (some days/times they want more volume)
✅ You want to reduce risk of a single buyer dropping out
✅ You need intelligent routing based on bid price, buyer performance, caps
Skip Outbound RTB When:
❌ You only have 1 buyer (no competition = no auction, just giving them a discount)
❌ Your buyers can't respond quickly (slow responses lose auctions)
❌ Your buyers don't have RTB infrastructure (requires technical capability on their side)
❌ You have exclusive direct deals at higher rates than RTB would generate
Prerequisites
Before setting up outbound RTB, you need:
1. At Least 2 Buyers with RTB Endpoints
Minimum: 2 buyers (for basic competition)
Ideal: 3-5 buyers (for healthy competition)
Diminishing returns: 6+ buyers (good, but latency increases)
💡 Recommendation: Use RTB Groups for parallel bidding. Without RTB Groups, the system checks endpoints sequentially (slower). RTB Groups send bid requests to all buyers simultaneously, improving response time and win rates.
Your buyers must provide:
RTB endpoint URL (e.g., https://api.retreaver.com/rtb/bid)
Authentication (API key, bearer token, etc.) — if required
Request format (which parameters they expect)
Response format (recommended) — Moja's test request will show their actual response, but having their docs helps verify you're mapping correctly
Common Buyer Platforms:
Ringba
Retreaver
TrackDrive
Phonexa
33 Mile Radius
LeadsPedia
Other call tracking platforms with RTB
2. Buyer Data in Moja
Create Buyer records in Moja:
Go to Buyers → Create Buyer
Enter buyer name and contact info
You'll reference these buyers when creating RTB targets
3. Routing Plan to Trigger RTB
Outbound RTB is triggered within a Routing Plan. You need:
A Campaign (call flow is optional)
A Routing Plan where you'll add RTB as a routing destination
💡 Note: You can't hit a destination phone number without a routing plan, regardless of whether you use a call flow.
How Outbound RTB Works
The Flow
Call arrives in your Moja campaign
↓
Routing plan evaluates (filters, priority, etc.)
↓
RTB Group or RTB Target is selected
↓
Moja sends parallel bid requests to all buyers in the group
(RTB Groups only - standalone RTB Targets are checked sequentially)
↓
Buyers respond with offers (phone number, payout, duration)
↓
Moja filters by minimum bid (RTB Groups only) and applies caps
↓
Highest valid bidder wins
↓
If winner has "Winning Step", execute it
↓
Route call to winning buyer's phone number
↓
You get paid the winning bid amount
Key Concepts
RTB Target: A single buyer's endpoint configuration (URL, auth, field mapping)
RTB Group: A collection of RTB Targets that compete in an auction
Set minimum bid (filter out low offers)
Set timeout (how long to wait for responses)
Set maximum bid per target (cap individual buyers)
Winning Step: Optional actions to execute AFTER winning (e.g., reserve inventory, confirm booking) — ⚠️ WARNING: Only works inside RTB Groups, FAILS if used standalone
Continue on Failure: Allow RTB to proceed to next step even if one fails (useful for non-critical requests)
Configuration Steps
Overview: Two Paths to RTB
You have two options for implementing outbound RTB:
Option A: RTB Groups (Recommended for Multiple Buyers)
When to use:
You have 2+ buyers
You want parallel bidding (auction format)
You want to set minimum bid thresholds
You need buyer competition to maximize revenue
Steps:
Create RTB Targets for each buyer
Create RTB Group to hold them
Add RTB Group to routing plan
Benefits: Parallel bidding, true auction, highest revenue potential
Option B: Standalone RTB Target (Simple Routing)
When to use:
You have a single buyer
You want simple sequential routing without auction logic
You're testing a new buyer integration
You have specific routing requirements that don't need competition
Steps:
Create RTB Target for buyer
Add RTB Target directly to routing plan
Limitations:
No parallel bidding (sequential only)
No minimum bid filtering
Winning steps won't execute
No auction competition
💡 Recommendation: Even with one buyer initially, consider setting up RTB Groups from the start. It makes adding future buyers easier and enables parallel bidding when you're ready.
Step 1: Create RTB Targets (One Per Buyer)
For each buyer, create an RTB Target:
1.1: Navigate to RTB Targets
Log into Moja
Go to Targets / RTBs → RTBs
Click Create RTB Target
1.2: Basic Configuration
RTB Name: Descriptive name (e.g., "Ringba - Insurance Buyer A")
Buyer: Select from your Buyer records (or create new)
Status: Set to "Active" when ready to use
1.3: Quick Start with Templates (Recommended)
⚠️ BEFORE configuring manually, check if we have a template for your buyer's platform. Templates skip most configuration headaches and avoid the session timeout issue entirely.
See RTB Templates section below for pre-built configurations for:
Ringba
Retreaver
TrackDrive
Phonexa
33 Mile Radius
LeadsPedia
If you find a matching template, load it and skip to Step 1.6 (map your specific credentials). If not, continue with manual configuration below.
1.4: Manual Configuration (Step 1 - Request)
HTTP Method: Usually GET or POST (check buyer's documentation or template)
Request URL: Buyer's RTB endpoint (e.g., https://api.ringba.com/v2/rtb/bid)
Params Tab (Query Parameters):
Add parameters buyers expect. Common examples:
caller_id = [CALLER_ID] (or test with real number: +16067277702)
zip = [ZIP] or [ZIP_CODE]
state = [STATE]
source = [SOURCE]
campaign_id = [CAMPAIGN_ID]
⚠️ IMPORTANT: When testing/building, use REAL VALUES (see Testing with Static vs Dynamic Values)
Tag Formats: Moja accepts multiple formats for common tags:
Caller ID: [CALLER_ID], [caller_id], [CallerID], [callerid]
State: [STATE], [state], [State]
ZIP: [ZIP], [zip], [Zip]
Custom tags (other than the above) ARE case-sensitive — use exact spelling
Headers Tab:
Add authentication headers:
Authorization: Bearer YOUR_API_KEY
Or X-API-Key: YOUR_KEY
Body Tab (if POST):
Select body type:
x-www-form-urlencoded (most common)
json (for JSON requests)
form-data (less common)
💡 Note: Most RTB platforms accept parameters either in the request body OR as query parameters. Both methods are valid for key-value pairs. Choose based on your buyer's preference.
Add parameters:
caller_id = +16067277702 (test value)
zip = 90210 (test value)
state = CA
Auth Tab:
Quick authentication setup:
Bearer Token: Paste token
API Key: Choose header or query param, paste key
Basic Auth: Paste base64 credentials
1.5: Test the Request
Click "Send" button to test:
Sends request to buyer's endpoint
Displays response in collapsible panel
Verify you get valid response with phone number, payout, duration
Common Issues:
401 Unauthorized: Check auth credentials
400 Bad Request: Missing required parameters
Timeout: Buyer's endpoint is slow or down
1.6: Map Response Fields
After getting a valid response, map fields:
Phone Number: Select the field containing the routing phone number (e.g., data.phone_number)
Payout: Select the field containing the bid amount (e.g., data.payout or data.bid)
Duration: Select the field containing expected call duration in seconds (e.g., data.duration)
⚠️ CRITICAL: These mappings are REQUIRED. You cannot save without mapping all three (unless using "Use Predefined Phone Number" option).
1.7: Configure Settings
Target Selection: If buyer returns multiple targets, choose how to pick winner:
First (default)
Highest payout
Lowest payout
Highest duration
Lowest duration
Random
Hours of Operation: Set when this buyer accepts calls (default: 24/7)
Timezone: Set timezone for hours interpretation (default: America/New_York)
Max Concurrency: Limit simultaneous calls to this buyer (0 = unlimited)
1.8: Save RTB Target
Click "Save" — your RTB Target is now ready to use in RTB Groups or as a standalone target in routing plans.
Step 2: Create RTB Group (For Multiple Buyers)
Now that you have 2+ RTB Targets, create an RTB Group to auction them:
2.1: Navigate to RTB Groups
Go to Targets / RTBs → RTB groups
Click Create RTB Group
2.2: Basic Information
Group Name: Descriptive name (e.g., "Auto Insurance Buyers - National")
2.3: Bid Settings
Minimum Bid: Lowest bid you'll accept (filters out low offers)
Example: Set to $25.00 to reject any buyer offering less than $25
2.4: Timeout Settings
Ping Timeout (milliseconds):
How long to wait for each buyer to respond before timing out.
Default: 2000ms (2 seconds) — Recommended for most use cases
Maximum: 10000ms (10 seconds)
Trade-offs: See Timeout Trade-offs section
2.5: Select RTB Targets
Add your RTB Targets to the group:
Click "Add RTB Target"
Select from dropdown (e.g., "Ringba - Buyer A", "Retreaver - Buyer B")
Repeat for all buyers
2.6: Set Maximum Bid Per Target (Optional)
For each RTB Target in the group, you can set a maximum acceptable bid:
Example:
Track Drive - Buyer A: Max bid $50.00
Retreaver - Buyer B: Max bid $45.00
Purpose:
Protect against runaway bids
Enforce negotiated rate maximums
Test new buyers at limited rates
2.7: Save RTB Group
Click "Save" — your RTB Group is ready to use in Routing Plans.
Step 3: Add RTB to Routing Plan
Now add your RTB Group (or standalone RTB Target) to a campaign's routing plan:
3.1: Navigate to Campaign Settings
Go to Campaigns → Select campaign
Click Settings → Routing Plans
Select a routing plan or create new
3.2: Add Route
Click "Add Route"
Action: Select "Route to RTB Group" (recommended) or "Route to RTB Target" (for standalone)
RTB Group/Target: Select from dropdown
Priority: Set priority (lower number = higher priority)
3.3: Save Routing Plan
Click "Save" — your RTB configuration is now live and will start auctioning calls.
RTB Templates (Quick Start)
The fastest way to configure outbound RTB is to use pre-built templates for common buyer platforms. Templates handle all the technical details (HTTP method, URL structure, parameter mapping) so you only need to provide your credentials.
Available Templates
Ringba - Standard RTB
Retreaver - Standard RTB
TrackDrive - Standard Ping
Phonexa - Store SetData
33 Mile Radius - Standard RTB
LeadsPedia - Standard Ping
Template 1: Ringba - Standard RTB
Platform: Ringba
Use Case: Standard real-time bidding for call routing
Method: GET (99% of Ringba RTB implementations use GET)
Configuration
HTTP Method: GET
Request URL:
https://rtb.ringba.com/v1/production/##{{RINGBA_UUID}}.json
Query Parameters:
CID = [CALLER_ID]
zipcode = [ZIP_CODE]
exposeCallerID = yes
Placeholders to Replace:
##{{RINGBA_UUID}} - Your 32-character hex UUID from Ringba campaign
Response Mapping:
Phone Number: phoneNumber
Payout: bidAmount
Duration: bidTerms[0].callMinDuration
Timeout: 10000ms (10 seconds)
Template 2: Retreaver - Standard RTB
Platform: Retreaver
Use Case: Standard RTB integration
Method: POST
Configuration
HTTP Method: POST
Request URL:
https://rtb.retreaver.com/rtbs.json?key=##{{RETREAVER_KEY}}
💡 CRITICAL: The API key MUST go in query parameters (this is non-negotiable with Retreaver). Other fields can go in parameters OR body.
Body (JSON):
{
"publisher_id": "##{{PUBLISHER_ID}}",
"caller_number": "[CALLER_ID]",
"caller_zip": "[ZIP_CODE]"
}
Response Mapping:
Phone Number: inbound_number
Payout: retreaver_payout
Duration: retreaver_seconds
Template 3: TrackDrive - Standard Ping
Platform: TrackDrive
Use Case: Ping-based call routing with predefined numbers
Method: POST
Configuration
HTTP Method: POST
Request URL:
https://##{{TRACKDRIVE_SUBDOMAIN}}.trackdrive.com/api/v1/inbound_webhooks/ping/##{{TRACKDRIVE_ENDPOINT}}
Query Parameters (REQUIRED):
trackdrive_number = ##{{TRACKDRIVE_NUMBER}}
traffic_source_id = ##{{TRAFFIC_SOURCE_ID}}
Body (JSON):
{
"caller_id": "[CALLER_ID]",
"zip": "[ZIP_CODE]"
}
Response Mapping:
Phone Number: NOT MAPPED (use predefined)
Payout: buyers[0].offer_conversion_payout
Duration: buyers[0].current_conversion_duration
Special Configuration:
✅ Enable "Use Predefined Phone Number"
Phone Number: ##{{TRACKDRIVE_NUMBER}} (same as parameter above)
⚠️ CRITICAL: TrackDrive ALWAYS uses a predefined phone number. The phone number serves as both a field value in the request AND the DID (destination) for routing. Do NOT attempt to map a phone number from TrackDrive's response.
Template 4: Phonexa - Store SetData
Platform: Phonexa
Use Case: Call tracking with setData API
Method: POST
Configuration
HTTP Method: POST
Request URL:
https://##{{PHONEXA_SUBDOMAIN}}.phonexa.com/store/setdata
Body (JSON):
{
"apiId": "##{{API_ID}}",
"apiPassword": "##{{API_PASSWORD}}",
"productId": "##{{PRODUCT_ID}}",
"clientNumber": "[CALLER_ID]",
"centerCode": "##{{CENTER_CODE}}",
"zipCode": "[ZIP_CODE]"
}
Response Mapping:
Phone Number: data.phoneNumber
Payout: data.price
Duration: data.callMinDuration
Template 5: 33 Mile Radius - Standard RTB
Platform: 33 Mile Radius
Use Case: Geographic-based call routing
Method: GET
Configuration
HTTP Method: GET
Request URL:
https://calls.33mileradius.com/api/v3/
Query Parameters:
password = ##{{33MILE_PASSWORD}}
zip = [ZIP_CODE]
duration = 1
Response Mapping:
Phone Number: NOT MAPPED (use predefined)
Payout: amount
Duration: duration
⚠️ CRITICAL: Like TrackDrive, 33 Mile Radius uses predefined phone numbers. You must obtain the routing number from 33 Mile Radius and configure it as a static value.
Template 6: LeadsPedia - Standard Ping
Platform: LeadsPedia
Use Case: Lead verification and call routing
Method: GET
Configuration
HTTP Method: GET
Request URL:
https://##{{LEADSPEDIA_SUBDOMAIN}}.leadspediatrack.com/call-preping.do
Query Parameters:
lp_campaign_id = ##{{CAMPAIGN_ID}}
lp_campaign_key = ##{{CAMPAIGN_KEY}}
caller_id = [CALLER_ID]
zip_code = [ZIP_CODE]
Response Mapping:
Phone Number: number
Payout: payout
Duration: duration
How to Use Templates
Step 1: Load Template
When creating a new RTB Target, look for "Load Template" option
Select your buyer's platform from the dropdown
Template auto-populates method, URL structure, parameters, and response mappings
Step 2: Fill in Your Credentials
Replace all ##{{PLACEHOLDER}} values with your actual credentials:
API keys
Account IDs
Subdomain names
Campaign identifiers
Step 3: Test Request
For testing, replace [CALLER_ID] and [ZIP_CODE] with real values:
Example: caller_id = +16067277702
Example: zip = 90210
Click "Send" to test the request
Verify you receive a valid response
Step 4: Restore Dynamic Tags
After successful testing, restore the dynamic tags:
Replace test phone number with [CALLER_ID]
Replace test zip with [ZIP_CODE]
Step 5: Save
Click "Save" — your template-based RTB Target is ready to use!
Template Benefits
✅ Faster setup - Skip manual URL/parameter configuration
✅ Fewer errors - Pre-validated configurations reduce mistakes
✅ Avoid session timeout - Templates load instantly, no timeout risk
✅ Industry best practices - Based on real production integrations
✅ Regular updates - Templates maintained as platforms evolve
Saving RTB Targets
RTB Targets cannot be saved without response mapping. If you need more time to configure, start with a template that has pre-mapped responses, save it, then continue editing.
Testing with Static vs Dynamic Values
The Confusion
When building RTB, you configure fields using tags like [CALLER_ID], [ZIP], [STATE].
❓ Question: During testing, should you use the literal tags [CALLER_ID] or actual values like +16067277702?
The Answer: Use Actual Values When Testing
❌ WRONG (during testing):
caller_id: [CALLER_ID] zip: [ZIP_CODE]
✅ CORRECT (during testing):
caller_id: +16067277702 zip: 90210
Why?
When you click "Send" to test your configuration:
Moja sends the literal content of the fields
If you have [CALLER_ID], Moja sends the string "[CALLER_ID]" (not a real phone number)
Your buyer receives an incomplete request and returns an error
You can't map response fields without a valid response
During live execution (real calls), Moja replaces tags with actual values:
[CALLER_ID] → +16067277702
[ZIP] → 90210
[STATE] → CA
Testing Flow
Step 1: Test with Static Values
Put real values in fields:
caller_id = +16067277702 (real phone number)
zip = 90210
state = CA
Click "Send" → Get valid response → Map fields → Save
Step 2: Replace with Dynamic Tags
After saving, go back and replace with tags:
caller_id = [CALLER_ID]
zip = [ZIP_CODE]
state = [STATE]
Save again.
Step 3: Test with Real Call
Send a test call through your campaign to verify tags are replaced correctly.
Platform-Specific Configuration
General Caller ID Requirements
⚠️ CRITICAL: Caller ID is essential for RTB - 90% of buyers require it.
Without caller ID:
Most buyers will reject your bid requests
You'll see low fill rates and poor performance
Calls won't pair with RTB buyers effectively
NPANXX Lookup (Automatic)
If caller ID is present but ZIP code or state are missing, Moja automatically performs an NPANXX lookup to populate geographic data.
You do NOT need to configure this - it happens automatically.
Platform Notes
Ringba:
99% of implementations use GET method (not POST)
Requires UUID in URL path
Most buyers require caller ID and zip code
Retreaver:
API key MUST be in query parameters (non-negotiable)
Other fields can be in query params OR body (both valid)
TrackDrive:
ALWAYS uses predefined phone numbers
Phone number serves as both field value and routing destination
Phonexa:
Uses POST with JSON body
Requires API credentials in every request
33 Mile Radius:
Geographic-focused routing
Predefined phone numbers (like TrackDrive)
LeadsPedia:
Campaign-based routing
GET method with query parameters
Lead Protection (Multi-Step RTB)
The Problem
In standard RTB, you send caller data (phone number, zip, state) to buyers during the bid request. A bad actor could:
Log your caller data without ever winning calls
Cherry-pick your best leads
Steal your lead data to contact directly
The Solution: Multi-Step RTB
Moja supports multi-step RTB to protect your leads:
Step | What's Shared | Buyer Action |
Step 1: Ping | Anonymous data only (time, vertical, general geo) | Buyer indicates interest + max bid |
Step 2: Post | Full caller data (only to winner) | Winner confirms acceptance |
Step 3: Transfer | Call connected | Buyer receives call and pays |
Lead Protection Best Practices
Minimize data in initial ping:
Send state, NOT zip
Send time/day, NOT caller ID
Vet buyers before sharing full data:
Start with ping-only relationships
Graduate to full data after trust is established
Monitor for data leakage:
Track if buyers are contacting your leads directly
Watch for suspicious patterns
Why You Need Multiple Buyers
1 Buyer = Discount, Not Auction
Buyers | What Happens | Your Revenue |
1 buyer | No competition → they bid minimum | ❌ $25/call (floor price) |
2 buyers | Basic competition | ✅ $35/call (20% increase) |
3-5 buyers | Healthy competition | ✅ $40-50/call (competitive market price) |
6+ buyers | Diminishing returns | ⚠️ $50-55/call (marginal gains, increased latency) |
Key insight: If you only have 1 buyer, you're not running an auction. You're just routing to them at whatever rate they decide to bid (usually minimum).
Goal: Aim for 3-5 active buyers in each RTB Group for optimal competition.
Real Revenue Example
Case Study: Home Services Publisher
Before RTB (Direct Routing):
Metric | Value |
Routing method | Direct to single buyer |
Fixed rate | $35/call |
Monthly calls | 2,400 |
Monthly revenue | $84,000 |
After RTB (+3 Buyers):
Metric | Value |
Routing method | RTB Group with 4 buyers |
Average winning bid | $47/call |
Monthly calls | 2,400 |
Monthly revenue | $112,800 |
Net difference: +$28,800/month (+34% revenue increase)
Timeout Trade-offs
Choosing Your Auction Timeout
Timeout | Pros | Cons | Best For |
2 seconds | Fast caller experience | May exclude slow buyers | High-volume, general leads |
5 seconds | More buyers can participate | Caller waits longer | Premium leads |
10 seconds | Maximum competition | Poor caller experience | Very high-value calls only |
Recommendation: Start with 2 seconds.
Monitoring Performance
Where to Check Performance
Location: Go to Reporting → RTB Requests → Outbound
Key Metrics to Monitor
Bid Request Volume - How many auctions you're running
Response Rate Per Buyer - Should be > 90%
Average Winning Bid - Track trends over time
Win Rate Per Buyer - Balance across buyers indicates healthy competition
Troubleshooting
Problem: Buyers Not Responding
How to Fix:
Test buyer endpoint directly (click "Send" in RTB Target config)
Check buyer's status with them
Verify authentication
Increase timeout if needed
Problem: All Buyers Rejecting Calls
How to Fix:
Check required fields (caller ID, zip)
Review buyer filters
Check buyer capacity
Lower minimum bid
Problem: Tags Not Resolving
How to Fix:
If testing from config page: This is normal — use real values for testing
If in live call: Check call logs, verify tag spelling
Moja accepts multiple formats for common tags:
Caller ID: [CALLER_ID], [caller_id], [CallerID], [callerid]
State: [STATE], [state], [State]
ZIP: [ZIP], [zip], [Zip]
Custom tags ARE case-sensitive
Problem: Winning Step Fails
⚠️ CRITICAL GOTCHA: Winning Steps ONLY work inside RTB Groups. If you use an RTB Target with a winning step as a standalone target in routing plan, IT WILL FAIL.
FAQ
Q: What's the difference between RTB Target and RTB Group?
RTB Target: Configuration for a single buyer's endpoint
RTB Group: Collection of RTB Targets that compete in auction
Analogy: RTB Targets are players. RTB Groups are teams.
Q: Can I use the same RTB Target in multiple RTB Groups?
A: Yes! This is common and recommended.
Q: What happens if no buyer meets the minimum bid?
A: Moja responds with "no bid" and the call proceeds to the next route in your routing plan.
Q: How do I prevent the same buyer from winning every time?
A: Set a Maximum Bid Per Target on individual RTB Targets within your RTB Group.
How to set up:
Go to RTB Groups → Select your group
For each RTB Target, set the Maximum Bid Per Target value (e.g., $55.00)
Save
Q: Can I offer the same call to multiple RTB Groups sequentially?
A: Yes! Use routing plan priority.
Q: How do I test RTB without impacting live calls?
A: Create a test campaign with a dedicated test phone number.
What's Next
Review Your RTB Performance - Go to Reporting → RTB Requests → Outbound
Multi-Step RTB Workflows - Chain multiple requests for complex integrations
Custom Tags and Variables - Pass data between steps
Advanced Caps and Budgets - Daily revenue caps, hourly limits
Need Help?
Documentation:
Inbound RTB Guide
Webhooks Guide
Support:
Email: [email protected]
Live Chat: Available in the Moja dashboard
Version: 4.0
Last Updated: March 13, 2026
Feedback: [email protected]