20 Sep 2026
Attribution that survives an audit: proving in-room screen ads actually ran
"The ad played 4,000 times last month" is a claim. A buyer who renews asks a different question: prove it. What screen-level attribution means for an in-room network, and what you need to produce on demand.
The first season of an in-room screen program runs on trust. The advertiser buys a pilot, you deliver a report saying the ads played, and everyone is pleasant. The second season runs on evidence. Buyers of place-based media have been burned by networks that reported scheduled impressions as delivered impressions, and the buyers who fund premium rates now verify. This is not an adversarial development; it is the maturation signal of the channel, and the operators who instrument for it early turn verification from a threat into a moat.
The difference between scheduled, playout and opportunity-to-see
Most reporting disputes in this space come from three numbers wearing the same label. Scheduled impressions is what your playlist intended: rooms occupied times spots per night. Playout-logged impressions is what the player recorded actually rendering, with timestamps. Opportunity-to-see sits between them: a playout where the screen was on, the app was in the foreground, and nothing in the telemetry suggests a dark or stuck display. A serious report separates all three. If your only number is scheduled, you have no attribution, you have a forecast, and the gap between a forecast and delivered is precisely the territory we covered in the uptime piece: screens go dark, and dark screens do not deliver.
What a screen-level log needs to contain
The minimum credible record, per spot, per screen, per day:
Timestamped playout events. Spot ID, creative version, start time, completion or abandonment, and the screen's identity. Not aggregated: row-level. Aggregates are exactly what an auditor cannot check, which is why buyers ask for rows.
Screen liveness context. Each playout event should join to that screen's heartbeat data, so a claim of delivery is not sitting next to a heartbeat gap. This is the single most common inconsistency we see in network reports: delivery logs showing perfect playout during hours the heartbeat log says the device was offline. One of them is wrong, and the buyer will assume both are.
Occupancy reconciliation. In-room inventory is sold against occupied rooms, because an ad in an unoccupied room is theatre. If the property's PMS data shows a room vacant on a night your log shows twelve playouts, you either have a squatting guest or an inflated number, and you want to find out which before the buyer does.
Independent verification, where it exists
Some demand-side platforms and place-based verification vendors support audio watermarking or frame-level content recognition: the creative carries an inaudible code, and a measurement device or panel detects it having actually played. Where your ad buyers bring this, embrace it; a third party confirming your playout numbers is worth more than any self-report. Where they do not, the next best thing is verifiable raw data: immutable row-level logs with device IDs and timestamps a buyer's analyst can reconcile against their own campaign dates, creative versions and the property's occupancy. What does not survive an audit is a PDF with a total on it.
The discrepancy threshold
Industry tolerance between a network's reported impressions and a buyer's independent verification typically runs around 10 percent. Below that, you have measurement noise; above it, you have a conversation you do not want, and repeated above it, a churned account. The practical way to stay under the threshold is unglamorous: honest uptime telemetry as described in our platform comparison, playout logging that runs on the device and syncs when connectivity returns rather than reporting what the schedule said, and a stated, documented method for how you count an impression in the first place. Buyers do not expect perfection. They expect you to know where your own numbers are soft.
Retention and the honest archive
Logs you cannot produce are logs you do not have. Keep playout and heartbeat records for at least the length of your commercial relationship plus a year, in a format that can be reprocessed, CSV or JSON rather than only PDFs, and back them up off the device. Smart TVs die, get factory-reset by guests, and get replaced during renovations; a player that logs to local storage only is an operator whose entire delivery history evaporates with the hardware. Sync early, sync often, and keep the raw rows even once you have built the pretty report, because the renewal negotiation is won or lost in the file the buyer's analyst asks for at 4pm on a Friday.
What to publish, before anyone asks
Give every advertiser a standing report that shows the arithmetic: occupied room nights, screen-online hours from heartbeat data, spots scheduled, spots delivered, and the effective delivery rate. Show the misses. A report that says 91 percent delivery with the outage nights named buys more confidence than a report that quietly says 100 percent, because every experienced buyer knows 100 percent is a number nobody has ever actually achieved. Pair it with the forecast model from our occupancy math walkthrough and the buyer can see both what you promised and what you delivered, side by side.
Attribution is not overhead. In a channel where the buyer cannot walk past a bus stop and see their ad, the evidence of delivery is the product. Build the logging before the second season, and the second season is a renewal conversation instead of an interrogation.
Running in-room screens and need delivery reporting buyers trust? AdVision Connect logs playout per screen, per spot, reconciled against heartbeat and occupancy data. Talk to us about a pilot.