Event Types
The life cycle of an ad request in Springserve is captured by different events. These events are made available in Log Level Data (LLD), and are ordered chronologically below. A workflow diagram depicting an ad call and subsequent events can be found here.
Event | LLD Column | Execution Path | Supply or demand | Definition | |
|---|---|---|---|---|---|
| 1 | ad_request |
| Both | Supply | A supply-tag auction passed applicable supply filtering/targeting. When selected through a router, this is a child auction with a different |
| 2 | cm_js_demand_req_resp |
| Client-side JS/VPAID | Demand | Combined client-side demand request-and-response event, used instead of separate |
| 3 | expired_impression |
| Both | Supply & Demand | An impression beacon was received after its configured expiration timestamp. It is recorded as an expired impression rather than as a billable impression. |
| 4 | js_click |
| Client-side JS/VPAID | Demand | Ad is clicked by end user. |
| 5 | js_complete |
| Both | Demand | Video ad has played through its entire duration. |
| 6 | js_demand_error |
| VPAID | Demand | Demand-side failure event. Non-timeout failures contribute to |
| 7 | js_demand_opportunity |
| VAST | Demand | For VAST, when a demand tag returns a bid |
| 8 | js_demand_request |
| VPAID | Demand | Client-side event emitted when SpringServe’s JavaScript/VPAID integration sends a request to a demand tag’s VAST endpoint. |
| 9 | js_demand_response |
| VPAID | Demand | Records the result of a client-side demand request, including whether the response contained an ad and the demand response time or timeout state. |
| 10 | js_first_quartile |
| Both | Demand | Video ad has played through 1/4 of its duration. |
| 11 | js_impression |
| Client-side JS/VPAID | Supply & Demand | Client-side impression recorded by the SpringServe VPAID |
| 12 | js_impression_duplicate |
| Client-side JS/VPAID | Supply & Demand | The same client-side impression event was recorded more than once. |
| 13 | js_midpoint |
| Both | Demand | Video ad has played through 1/2 of its duration. |
| 14 | js_opportunity |
| Client-side JS/VPAID | Supply | Emitted when the SpringServe supply-tag VPAID loads or initializes, creating a client-side supply opportunity. |
| 15 | js_start |
| Client-side JS/VPAID | Demand | For VPAID, when video ad started |
| 16 | js_supply_error |
| VPAID | Supply | Client-side supply error event. When marked as a timeout, it contributes to |
| 17 | js_third_quartile |
| Both | Demand | Video ad has played through 3/4 of its duration. |
| 18 | missed_opportunity |
| Both | Supply | A usable supply-tag auction had no eligible demand auction results, generally because no demand passed targeting. It is emitted on the same child auction as |
| 19 | openrtb_auction_win |
| both | Demand | Springserve open market demand tag wins auction |
| 20 | openrtb_response |
| both | Demand | Legacy Programmatic Connect/OpenRTB demand response containing a bid. |
| 21 | player_start |
| Client-side JS/VPAID | Supply | For VPAID, when the video players starts running on page |
| 22 | pod_response |
| Both | Supply | Supply-side summary of an ad-pod response, including the configured pod capacity and the number and duration of ads selected into the pod. |
| 23 | prebid_blocked_wo |
| Both | Supply | The supply request was blocked before the auction after a direct, non-cached HUMAN prebid check classified the traffic as invalid. Cached HUMAN decisions are recorded under a separate internal event type. |
| 24 | request_blocked |
| Both | Supply | The incoming request failed global or supply-tag-level targeting and was blocked before a usable supply-tag auction could proceed. Unlike |
| 25 | routed_missed_request |
| Both | Supply | Supply tag(s) evaluated by the router failed supply-tag targeting. This can coexist with a successful selection and child |
| 26 | router_blocked_request |
| Both | Supply | The incoming request failed targeting at the supply-router level. No supply-tag auction was selected. |
| 27 | router_missed_opportunity |
| Both | Supply | The request passed router targeting, but the router selected no eligible supply tag. Emitted alongside |
| 28 | router_usable_request |
| Both | Supply | The incoming request passed router-level targeting and router processing continued. This event is emitted even if no supply tag is ultimately eligible, so it may coexist with |
| 29 | ssb_demand_error |
| VAST | Demand | Demand-side failure event. Non-timeout failures contribute to |
| 30 | ssb_demand_request |
| VAST | Demand | Server-side event emitted when SpringServe sends an outbound request to a demand tag or demand source. |
| 31 | ssb_demand_request_error |
| Server-side/SSB | Demand | Emitted when a server-side demand request and its failure are recorded as a single event rather than as separate |
| 32 | ssb_demand_response |
| VAST | Demand | Records the result of a server-side demand request, including whether ads were returned, how many ads or bids were present, whether the response won, and the applicable response time. |
| 33 | ssb_supply_error |
| VAST | Supply | Supply-side error event. When marked as a timeout, it contributes to |
| 34 | ssb_supply_opportunity |
| VAST | Supply | Emitted for each winning server-side ad selected for inclusion in the response returned to the supply source. |
| 35 | ssb_vast_response |
| VAST | Demand | Response from demand that contains at least one valid ad |
| 36 | throttled_request |
| Both | Supply | The incoming supply-tag or supply-router request was rejected because it exceeded an applicable QPS or request-rate limit. The request is recorded as throttled and does not proceed through the normal auction flow. |
| 37 | vast_impression |
| Server-side/SSB | Supply & Demand | Springserve impression beacon fired |
| 38 | vast_impression_duplicate |
| Server-side/SSB | Supply & Demand | Unique impression pixel in a VAST response gets fired more than once |