Home > Supply Side Platform > General > Server-side (RTB) Integration: Flow & Metrics

Server-side (RTB) Integration: Flow & Metrics

This article explains how server-side (RTB) integration works, including request flow, auction logic, and how to interpret metrics.

This applies to:

  • Tag-based Source → RTB Campaigns
  • RTB Source → RTB Campaigns

In server-side (RTB) logic: 1 incoming request → multiple outgoing requests → auction → 1 winning response

Unlike client-side, requests are broadcast to multiple demand partners.

Reporting Recommendation

If your setup includes a mix of Tag and RTB campaigns, it is recommended to:

  • Use Report View: RTB Analytics
  • Add slice: Campaign Integration Type
  • Filter by RTB, Prebid campaigns

This ensures correct interpretation of RTB-specific metrics.

End-to-End Flow

 

Step 1 - Inbound Request (metric Ad Request)
The process starts when the system receives a request on the Source.
At this stage, the system counts all incoming traffic.

POST http://s.adtelligent.com/?aid=11111& HTTP/1.1
User-Agent: Roku/DVP-13.0 (13.0.0.24056-30)
Host: s.adtelligent.com
Content-Type: application/x-protobuf
Connection: Keep-Alive
X-Openrtb-Version: 2.5
X-Insi: 46A066DD3A917CAD
{"id":"46A066DD3A917CB1","imp":[{"id":"46A066DD3A917CB1","video":{"mimes":["video/mp4","video/x-flv","video/webm","application/x-mpegURL","video/ogg","video/3gpp","video/quicktime","video/x-msvideo","video/x-ms-wmv"],"linearity":1,"minduration":3,"maxduration":300,"protocols":[1,2,3,4,5,6],"w":1280,"h":720,"startdelay":0,"sequence":1,"boxingallowed":1,"api":[1,2]},"bidfloor":1.2,"bidfloorcur":"USD","secure":1}],"app":{"id":"123456","name":"test app name","bundle":"com.test-bundle","publisher":{"id":"88888"},"storeurl":"https://test.domain.com/details/test"},"device":{"ua":"Roku/DVP-13.0 (13.0.0.24056-30)","ip":"75.4.218.227","geo":{"lat":34.0034,"lon":-84.4605,"country":"USA","region":"GA","metro":"524","city":"Marietta","zip":"30062","type":2,"accuracy":5,"ipservice":3},"carrier":"AT&T Internet","language":"en","make":"Roku","model":"DVP","os":"Roku","devicetype":3,"ifa":"7263cd8d-f24c-47ee-bd41-fd1b7c500d04","ext":{"ifa_type":"rida"}},"regs":{"coppa":0,"ext":{}},"user":{"id":"ffb10beae0a19eb4","ext":{}},"at":1,"tmax":1493,"allimps":0,"cur":["USD"],"bcat":["IAB26"],"ext":{}}

Step 2 - Request Validation
The system validates required parameters:
In-App: bundle or app name
Web: domain
Invalid requests are filtered out and do not proceed further.

Step 3 - Supply-side Targeting and Limits
The request is checked against:
- Global lists (account level)
- Channel settings
- Source settings
If the request does not match targeting rules, it is filtered out.

Step 4 - Demand Matching
If the request passes all checks, the system evaluates campaigns.
Checks include:
- Advertiser & campaign targeting
- Bid floor / pricing rules
- Limits: QPS / Daily, Hourly Request /Opportunity / Daily, Hourly Impression limits.

Step 5 -  Campaign Selection
The system selects the campaign most likely to respond.
This is based on performance signals (e.g., fill rate), while still allowing other campaigns to participate.

Step 6 - Outbound Request (metric Ad Request)
In server-side logic: 1 incoming request → multiple outgoing requests to campaigns
Ad Request with the demand-related slices (Advertiser/Campaign/ Campaign type of integrations, and etc.)

Step 7 - Campaign Responses (metric RTB Campaign Response)
Campaigns return valid responses to the system received from demand
Only valid responses are counted.

Step 8 - Auction
The system evaluates all responses within a single auction.
It selects the winner based on: Bid price.

Step 9 - Response to Publisher (metric Bids)
The winning bid is sent to the publisher.

 

Step 10 - VASTAdTagURI from ADM Call  (metric Ad Opportunities)
When the publisher calls VASTAdTagURI from ADM.

 

Step 11 - Impression
The impression tracker from ADM is triggered.

 

Common Scenarios


- Low RTB Campaign Responses:
Check outbound ad requests in the campaign logs ("All campaigns" tab) to ensure all required parameters are present (ifa, app store url, etc.) and correct (no "replace_me", [APP_BUNDLE], etc.).
Confirm with the demand partner that they receive and can process the requests, have active demand for this inventory, and that the floor price and targeting are aligned.

- Low Bids
Review why bids are not winning the auction.
Check source-level ad category targeting and make sure it aligns with the campaign.
If this affects a specific campaign, verify that other campaigns on the same connection have comparable price levels; otherwise, the campaign may win infrequently.

- Low Ad Opportunities
Wrapper / ADM not executed. Publisher-side issues.

- Low Impressions
May be caused by impression-level filtering. Check group of metrics "Bad details" (Report > Wizard > Bad Details).
Supply-Side issue: Creative not rendered - contact the publisher to confirm there are no limits on ADM/Wrappers execution or player issues.
Demand-Side issue: No actual creative behind advertiser response. e.g. There are tags behind advertiser endpoint and when publisher rendering responses, there are no ads.