From 79fa855289a1422dc0af4bb25a5712a9f62f24c7 Mon Sep 17 00:00:00 2001 From: Marcin Komorski Date: Thu, 19 Mar 2026 14:03:42 +0100 Subject: [PATCH] add allowVastXmlOnly --- dev-docs/publisher-api-reference/setConfig.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/dev-docs/publisher-api-reference/setConfig.md b/dev-docs/publisher-api-reference/setConfig.md index f52b9863cc..8bb749f2ec 100644 --- a/dev-docs/publisher-api-reference/setConfig.md +++ b/dev-docs/publisher-api-reference/setConfig.md @@ -1133,10 +1133,11 @@ pbjs.setConfig({ ### Client-side Caching of VAST XML -When serving video ads, VAST XML creatives must be cached so the +When serving video ads, VAST XML creatives are commonly cached so the video player can retrieve them when it's ready. Players don't obtain the VAST XML from the JavaScript DOM in Prebid.js, but rather expect to be given a URL where it can -be retrieved. There are three different flows possible with Prebid.js around VAST XML caching: +be retrieved. If your player can render VAST XML directly, you can set `cache.allowVastXmlOnly` +to bypass the cache requirement. There are different flows possible with Prebid.js around VAST XML handling: * Server-side caching: Some video bidders (e.g. Rubicon Project) always cache the VAST XML on their servers as part of the bid. They provide a 'videoCacheKey', which is used in conjunction with the VAST URL in the ad server to retrieve the correct VAST XML when needed. In this case, Prebid.js has nothing else to do. As of Prebid.js 4.28, a publisher may specify the `ignoreBidderCacheKey` flag to re-cache these bids somewhere else using a VAST wrapper. @@ -1153,6 +1154,7 @@ be retrieved. There are three different flows possible with Prebid.js around VAS | cache.timeout | no | number | Timeout (in milliseconds) for network requests to the cache | | cache.vasttrack | no | boolean | Passes additional data to the url, used for additional event tracking data. Defaults to `false`. | | cache.ignoreBidderCacheKey | no | boolean | If the bidder supplied their own cache key, setting this value to true adds a VAST wrapper around that URL, stores it in the cache defined by the `url` parameter, and replaces the original video cache key with the new one. This can dramatically simplify ad server setup because it means all VAST creatives reside behind a single URL. The tradeoff: this approach requires the video player to unwrap one extra level of VAST. Defaults to `false`. | +| cache.allowVastXmlOnly | no | boolean | When `true`, allows rendering VAST XML without requiring use of a cache. Useful for players that can consume VAST XML directly. Defaults to `false`. | | cache.batchSize | no | number | Enables video cache requests to be batched by a specified amount (defaults to 1) instead of making a single request per each video. | | cache.batchTimeout | no | number | Used in conjunction with `batchSize`, `batchTimeout` specifies how long to wait in milliseconds before sending a batch video cache request based on the value for `batchSize` (if present). A batch request will be made whether the `batchSize` amount was reached or the `batchTimeout` timer runs out. `batchTimeout` defaults to 0. | @@ -1180,6 +1182,16 @@ pbjs.setConfig({ }); ``` +If your player can render raw VAST XML and you do not want to require caching, you can set: + +```javascript +pbjs.setConfig({ + cache: { + allowVastXmlOnly: true + } +}); +``` + As of Prebid.js 2.36, you can track client-side cached VAST XML. This functionality is useful for publishers who want to allow their analytics provider to measure video impressions. The prerequisite to using this feature is the availability of a Prebid Server that supports: * the /vtrack endpoint