Pixalate on September 21, 2026 released OpenEPG DB 1.0 and a Pre-Bid API that writes the name of the programme on screen into open programmatic connected TV bid requests. The database behind it holds more than 580,000 shows and 6,192 US streaming apps, according to the company, and requires nothing from publishers. Both products are in private beta for demand-side platforms, supply-side platforms and exchanges.
In Short
Pixalate has built a giant TV guide that lets advertising systems work out which show is probably playing inside a streaming app at the moment an ad slot goes up for sale. That matters because most streaming ad slots sold at auction arrive with no programme name attached, so advertisers often pay for a spot in an app without knowing whether it sits beside the news, a cartoon or a cooking show. If ad platforms adopt it, you could see bids and blocks set show by show rather than app by app, although every label is an estimate that comes with a score for how sure the system is.
What went into beta
The proposition is compact. According to Pixalate, the Pre-Bid API is "built to IAB Tech Lab's OpenRTB 2.6 specification" and "enriches open programmatic CTV bid requests with a standard Content object in real time." The Content object is the part of a bid request meant to describe what a viewer is watching: a title, a series, a genre, a rating, a channel. In connected television it is frequently empty, including on FAST services that can package hundreds of scheduled, linear-style channels inside a single app.
OpenEPG DB 1.0 is the reference data the API queries. As of September 2026, according to Pixalate's product page, it spans:
- Shows: more than 580,000, with examples including 60 Minutes, NCIS, South Park and Wheel of Fortune
- Channels: more than 13,900 FAST and linear channels, among them CNN, ESPN, Food Network, FOX News and Telemundo
- Apps: 6,192 US streaming apps, such as CNNgo, DAZN, Yahoo Sports and Univision
- Identifier variants: more than 375,000 raw app identifiers observed in open programmatic bid streams, each mapped to a parent app
- Aggregators: 12 streaming platforms and multi-channel aggregators, including Tubi, Samsung TV Plus, The Roku Channel, Hulu, Sling TV, Fubo, Plex, Pluto TV and Xumo
- Operating systems: nine, namely Roku, Samsung Tizen, Amazon Fire TV, LG webOS, Vizio SmartCast, Apple tvOS, Android TV, Android and iOS
- Geography: 210 US media markets
The market is the United States alone. Pricing was not disclosed. "Packages are tiered by monthly request volume," the company states, with details available on request, and beta access is granted through a sales contact form rather than self-service sign-up.
Two fields in, one object out
The mechanism is narrow by design. The API reads two fields from an incoming bid request, both mandatory. The first is app.bundle, the bundle ID naming the app in which the impression will run. Pixalate normalises it against its catalogue of more than 375,000 known variants to find the parent app. The second is device.ua, the device user agent string, which, according to the company, "identifies the device and operating system carrying the impression, so the app resolves to the correct platform variant."
Two further signals are optional: a platform channel identifier in app.content.channel.id and a channel name in app.content.channel.name. Where a bid stream carries either, the resolution engine "incorporates these signals to calculate match confidence," according to Pixalate, and uses them "to disambiguate channels inside aggregator apps." A show title can also be supplied as an optional signal.
What comes back is the same request with fields written into app.content: title, series, genre, contentrating and a channel object with an identifier and a name. "Nothing else in the request is touched," the company states. A statistical confidence score between 0.00 and 1.00 travels separately, in an HTTP response header rather than in the body.
The worked example on the product page shows the shape of an answer. A request carrying the bundle "com.pluto.tv" and the user agent "Roku/DVP-13.0.0" returns a 200 OK response with the headers X-OpenEPG-Outcome: HIT and X-OpenEPG-Confidence: 0.94. The body resolves the impression to SportsCenter, series SportsCenter, genre Sports, rating TV-PG, on a channel named ESPN. The sample itself illustrates the problem the normalisation layer exists to absorb. Roku's channel store assigns numeric identifiers, and IAB Tech Lab guidance asks sellers to pass the store ID, so a reverse-domain string sitting next to a Roku user agent is exactly the kind of non-standard variant buyers find in real traffic.
Genre comes from what Pixalate calls "a 24-genre taxonomy based on authoritative sources." The sources are not named. Content ratings follow the US television scale (TV-G, TV-PG, TV-14, TV-MA) "as reported by underlying sources," and the company is explicit on one point: "Pixalate does not assign ratings."
Two routes and two latency budgets
There are two ways to call the engine. The Pre-Bid Passthrough route takes a complete OpenRTB 2.6 request and returns it with the Content object spliced in. The Flat Lookup route accepts a bundle ID plus an optional channel or title and returns the resolved content and confidence score "for analytics or offline use."
Delivery also comes in two forms. Over REST, Pixalate states a target server-side latency of 10 milliseconds or less at the median and 25 milliseconds or less at the 99th percentile. Server-side means those figures exclude the network round trip between the caller and Pixalate, which a bidder in another region would add on top. The second option is an in-bidstream module on AWS RTB Fabric, which the company says runs at "roughly half the REST latency," about 5 milliseconds at the median and 12 at the 99th percentile.
Amazon Web Services opened RTB Fabric on October 23, 2025 as a managed private network for bidding traffic, with a modules capability designed to bring partner applications into the compute environment where auctions run. AWS justified the service on the basis that most auctions must complete within 200 to 300 milliseconds, a latency budget in which every external call competes with the bid itself. The same logic drives IAB Tech Lab's Agentic RTB Framework, which moves partner code into containers inside the auction because a round trip to an outside service costs milliseconds the auction cannot spare. Pixalate is betting that enrichment will be bought where it adds the fewest of them. AWS added custom domain support on May 14, 2026, and by June the network's roster already included Amazon Ads, Azerion, GumGum, Kargo, MobileFuse, Sovrn, TripleLift, Viant, Yieldmo and Bigabid. Pixalate did not say which, if any, of those participants are in its beta.
On the sell side, the company lists the integration overhead as "0 SDKs; 0 lines of publisher code."
A schedule lookup with a probability attached
Underneath the protocol language, the product is an electronic programme guide joined to a timestamp. Pixalate describes the returned title as "the program airing at the moment of the bid request." Identify the app, identify the channel, look up the schedule, and the programme follows.
For a single-channel app that chain is short. For aggregators it is not. "Neither appears in most open programmatic bid requests," the company says of publisher-submitted schedules and automatic content recognition data, "and the gap is widest on multi-channel FAST aggregators, where a single Bundle ID can carry hundreds of channels." When a Tubi or Samsung TV Plus request arrives without a channel identifier, the bundle and the user agent narrow the field to one app on one platform. They do not, on their own, say which of several hundred channels is playing. That is where the confidence score does its work.
The design is candid about what it is selling. A score from 0.00 to 1.00 is a probability, not a declaration, and responsibility for acting on it passes to the buyer. "Callers apply their own threshold for bidding, pricing or suitability decisions," according to Pixalate. The 0.94 in the sample is illustrative. The materials publish no accuracy benchmark, no distribution of scores across live traffic and no share of requests that resolve at all. The HIT value in the outcome header implies at least one other outcome; the product page lists "What happens if a request cannot be resolved?" among its frequently asked questions, but the answer is not visible in the published page as captured.
Where the documents disagree or go quiet
Several points in the materials do not line up, and others are left unexplained.
The extension. The product page states that the API returns a standard object with "no new schema, no custom extension." The sample response on the same page carries an ext field, "ext": { "openepg": { "attribution": "pixalate-openepg/v1" } }. OpenRTB permits ext objects precisely for vendor-specific data, so the field breaks nothing, but it is a custom extension, and the page does not reconcile the two statements.
The scale. Three months earlier, when Pixalate released its OpenEPG Index, the company said its OpenEPG DB normalised more than 37,000 open-market Bundle ID variations across six operating systems, and that the underlying analytics had catalogued 12,875 shows across 318 channels. September's figures are 375,000-plus variations across nine platforms, more than 580,000 shows and more than 13,900 channels. The June numbers appear to describe shows observed with open-market ad activity, while September's may describe the full schedule catalogue available for lookup, but neither document says so. The difference is roughly tenfold for bundle variants and more than fortyfold for shows.
Genre. The API populates the free-text genre field. In December 2024 IAB Tech Lab proposed new genres and gtax attributes to turn free-text genre descriptions into enumerated values from its content taxonomy, together with a CTV Genres subset released as version 3.1. Pixalate's materials do not mention either attribute, and it is unclear how its 24 genres map to the IAB list. A buyer running suitability policy on the IAB categories would need that mapping before trusting a block.
Identifiers. The sample response carries identifiers in an unexplained format, ec-4Fq0X2 for the programme and eg-Tj5r8w for the channel. Nothing in the materials says whether these map to other identifier systems or stay unique to Pixalate. That matters because persistent, shared identifiers are what let a buyer recognise the same show across different services.
On-demand viewing. A schedule lookup presupposes a schedule. Several of the named aggregators, Hulu and Plex among them, carry large on-demand libraries alongside live or FAST channels. The materials do not explain how an on-demand stream, which has no airtime, is resolved.
Time and place. The Flat Lookup inputs listed on the page do not include a timestamp, and the page does not say how an offline query places an impression in time. Nor do the required inputs include location, although the database claims coverage of 210 local markets whose broadcast schedules differ.
Built on the fields fraud targets
Both required inputs are self-declared. Nothing in a standard bid request cryptographically ties a bundle string or a user agent to the software actually running, and both are routinely forged. Pixalate knows this better than most. Its own research found in March 2024 that 52% of programmatic ad traffic appearing to come from Roku devices originated elsewhere in the fourth quarter of 2023, and two months later that between 26% and 67% of CTV bundle IDs were malformed or fraudulent, depending on the platform. In July 2026 HUMAN disrupted NewsJunkie, a scheme that spoofed device, app and IP details through server-side ad insertion at close to two billion requests a day per seller.
A spoofed bundle and a spoofed user agent will resolve, by construction, to whatever the impersonated app would plausibly be airing. The enrichment layer would then attach a respectable programme name to fraudulent traffic. The materials do not say whether requests are screened for invalid traffic before resolution. Pixalate sells that screening separately; it has held Media Rating Council accreditation for sophisticated invalid traffic detection in OTT since November 2018, and its June index reported show-level invalid traffic rates between 6% and 14% among the top ten small-screen shows. Whether the two products run in sequence, and whether a low-quality request is flagged in the header, is not specified.
Many answers to one missing field
The gap Pixalate is addressing is well measured. A March 2026 analysis by Peer39, cited by Gracenote in May, found that only 40% of CTV bid requests carry usable program-level content signals. IAB research published on July 14, 2026 found that 43% of CTV buyers had only somewhat to no confidence in where their ads ran, with confidence at 57% for publisher-direct and guaranteed deals and 33% for the open exchange. That last figure is the market Pixalate is targeting.
The competition has arrived from every link in the chain. Gracenote works from publisher-supplied metadata, opening Content Connect in December 2025, agreeing on August 12, 2026 to test its identifiers in Tubi's bid streams, and on August 27 signing its first demand-side deal, with The Trade Desk. Integral Ad Science brought show-level transparency to Disney, NBCUniversal, Paramount and Prime Video inventory on April 27. FreeWheel added a series-level reporting tool for seven publishers in July. Nano Interactive's Screen Graph cross-matches what different publishers pass to fill missing episode and cast fields. Viant reported in August that its IRIS Content ID had reached nearly 50% penetration of the bid stream. Six days before Pixalate's release, on September 15, Wurl opened a platform that writes contextual signals into bid requests from its position as FAST channel infrastructure, claiming more than 140 billion signal-rich impressions a month.
Pixalate's distinction is that it sits outside the supply chain entirely. It needs no publisher agreement, no channel operator and no ad server. That independence explains the coverage claims, and it also explains the confidence score. Gracenote's identifiers and Wurl's signals are declared by, or in partnership with, parties that know what aired. Pixalate's labels are inferred by a third party from a public schedule and two request fields. Which approach a buyer prefers depends on whether breadth or certainty is the scarcer commodity in a given campaign.
What changes for buyers and sellers
On the buy side, Pixalate frames three uses. The first is pricing: "Bid on inventory priced to its content, not its app shell. Different shows within the same app present different brand environments." The second is brand suitability, feeding genre and official ratings into existing policy engines "instead of bidding blind or blocking whole apps." The third is post-bid verification through the OpenEPG Analytics dashboard, with the free monthly OpenEPG Index as a public companion.
For sellers, the company argues that content-transparent inventory "is easier to buy and supports higher price floors," and that SSPs can surface which shows inside aggregator apps drive programmatic activity. No data accompanies that claim. The pressure behind it is real, however: CTV CPMs fell 25.8% year on year in April 2026 in DataBeat's figures, even as programmatic CPMs overall rose 33.9%.
The absence of publisher opt-in cuts both ways for content owners. It removes integration work. It also means a programme can be labelled, priced or blocked on the basis of an inference the owner never saw. A mistaken TV-MA rating attached to a TV-PG show, for instance, could exclude inventory from suitability-restricted campaigns. The materials describe no mechanism for publishers to review or dispute how their channels resolve, nor any revenue relationship with the channel owners whose schedules make the lookup possible. For a company whose products have long been used to police sellers, that may prove the most closely watched question once the beta widens.
Timeline
- November 2018: Pixalate receives MRC accreditation for sophisticated invalid traffic detection and filtration on OTT
- March 2024: Pixalate finds 52% of Roku-labelled programmatic traffic in Q4 2023 originated on other devices
- May 2024: Pixalate reports 26% to 67% of CTV bundle IDs malformed or fraudulent by platform
- December 11, 2024: IAB Tech Lab proposes genres and gtax attributes and a CTV Genres subset
- October 23, 2025: AWS opens RTB Fabric with modules for partner applications
- December 4, 2025: Gracenote opens Content Connect for program-level CTV metadata
- March 2026: Peer39 analysis finds 40% of CTV bid requests carry usable program-level signals
- April 27, 2026: IAS debuts Total TV with show-level transparency
- May 14, 2026: AWS RTB Fabric adds custom domain support
- June 12, 2026: Bigabid joins AWS RTB Fabric
- June 17, 2026: Pixalate releases the OpenEPG Index 1.0, citing 37,000-plus bundle ID variations and 12,875 shows across 318 channels
- July 7, 2026: HUMAN disrupts the NewsJunkie CTV spoofing scheme
- July 14, 2026: IAB finds 43% of CTV buyers doubt where their ads ran
- July 2026: FreeWheel debuts a series-level CTV reporting tool for seven publishers
- August 12, 2026: Tubi Media Group agrees to test Gracenote identifiers in its bid streams
- August 2026: Viant reports IRIS Content ID at nearly 50% bid stream penetration
- August 2026: Nano Interactive's Screen Graph fills missing CTV episode and cast data
- August 27, 2026: Gracenote signs its first DSP integration, with The Trade Desk
- September 15, 2026: Wurl opens its Content Intelligence Platform to DSPs
- September 21, 2026: Pixalate releases OpenEPG DB 1.0 and the Pre-Bid API in private beta for DSPs, SSPs and exchanges in the United States
Related PPC Land coverage
- Pixalate's OpenEPG Index exposes the blind spot in streaming TV measurement - The June 2026 index built on the same programming map, with its earlier coverage figures and show-level invalid traffic rates.
- Wurl tags 140 billion monthly streaming TV impressions with content data - A sell-side route to the same enrichment, taken from the channel infrastructure layer six days earlier.
- The Trade Desk gains show-level CTV data in Gracenote's first DSP deal - Publisher-derived programme identifiers moving to the demand side.
- Gracenote: missing show data is costing CTV billions in linear TV ad budgets - The research quantifying how few CTV bid requests carry programme-level signals.
- IAB: 43% of CTV buyers doubt where their ads actually ran - Buyer confidence figures by transaction type, including the open exchange.
- Tubi and FOX One gain Gracenote metadata on 55 million titles - A major aggregator testing persistent identifiers in its own bid streams.
- IAS Total TV brings show-level transparency to CTV ad buying - The verification-side approach to content visibility across four streaming portfolios.
- FreeWheel debuts series-level CTV tool for 7 publishers - An ad server's post-campaign answer to the same transparency complaint.
- Nano Interactive Screen Graph fills missing CTV episode and cast data - Cross-matching publisher metadata to repair incomplete content fields.
- AWS dedicated network for real-time ad bidding workloads - The RTB Fabric launch and the modules capability Pixalate's lower-latency route relies on.
- AWS RTB Fabric now lets bidders keep their own domains - How bid traffic migrates onto Fabric without partners changing endpoints.
- Malformed Bundle IDs plague Connected TV advertising - Pixalate's 2024 platform-by-platform data on broken and fraudulent identifiers.
- Pixalate report exposes rampant device spoofing in Roku and Amazon Fire TV ad marketplaces - Evidence that the user agent and device signals the API depends on are routinely forged.
- HUMAN Security kills NewsJunkie CTV fraud scheme hitting 2 billion bids daily - A 2026 operation that spoofed app and device details at scale.
- IAB Tech Lab unveils Content Taxonomy upgrade for programmatic CTV advertising - The enumerated genre fields that sit alongside the free-text field Pixalate populates.
Summary
Who: Pixalate, a fraud and privacy compliance company headquartered in McLean, Virginia, with offices in London, Dublin and Singapore. The products are offered to demand-side platforms, supply-side platforms and exchanges.
What: OpenEPG DB 1.0, a programming database the company says covers more than 580,000 shows, more than 13,900 FAST and linear channels, 6,192 US streaming apps and more than 375,000 bundle ID variants, together with a Pre-Bid API that reads the bundle and user agent fields of an OpenRTB 2.6 bid request and writes title, series, genre, content rating and channel into the Content object, returning a confidence score from 0.00 to 1.00 in a response header. Access runs over REST, with a stated median server-side latency target of 10 milliseconds or less, or as an AWS RTB Fabric module at about 5 milliseconds.
When: Released on September 21, 2026, in private beta. Coverage figures are stated as of September 2026.
Where: The United States only, across nine operating systems from Roku and Samsung Tizen to Android and iOS, and 210 media markets.
Why: Most open programmatic CTV bid requests carry no usable programme information, with Peer39 analysis putting the share that do at 40%, and buyers report the least confidence in open exchange placements. Pixalate is attempting to supply that information from outside the supply chain, without publisher involvement, by inferring the programme from public schedules. The trade-off is that every label is a probability derived from self-declared request fields, and the materials leave open how on-demand viewing, fraud screening and taxonomy mapping are handled.
Discussion