diff options
Diffstat (limited to 'server')
| -rw-r--r-- | server/cmd/listend/main.go | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/server/cmd/listend/main.go b/server/cmd/listend/main.go index d93325d..c21d65a 100644 --- a/server/cmd/listend/main.go +++ b/server/cmd/listend/main.go @@ -564,8 +564,14 @@ func giveBackAttempts(episodes []*store.Episode) { adAccounting describes what was found against what the lengths say is there. The declared-versus-served gap comes from the feed and the file rather than from any detector, -which makes it the one number able to contradict one. Every other readout in this project that -reported only what it found turned out to be hiding something. +which makes it the one number able to contradict one. + +It bounds only the advertising a CDN *inserted* into this copy, which is not all the advertising +in it. A show that bakes its sponsor reads into the file it publishes has no gap at all and can +still be a third advertisements -- The 404 Media Podcast declares within 11 seconds of what it +serves and carries Mack Weldon, Incogni and Warby Parker reads in the middle of it. So finding +more than the gap implies is not over-reporting, and saying so in the readout matters: the first +reading of a "728%" line was that the detector had gone wrong, and it had not. */ func adAccounting(e *store.Episode, found []transcript.Candidate) string { var total int64 @@ -577,12 +583,19 @@ func adAccounting(e *store.Episode, found []transcript.Candidate) string { how = "by subtracting the publisher's master" } gap := e.DurationMs - e.DeclaredDurationMs - if gap <= 0 { - return fmt.Sprintf("%d ad candidate(s) %s, %s; nothing was inserted into this copy", + switch { + case gap <= 0: + return fmt.Sprintf("%d ad candidate(s) %s, %s; nothing was inserted into this copy, "+ + "so anything found is baked into what the publisher serves", len(found), how, clock(total)) + case total > gap: + return fmt.Sprintf("%d ad candidate(s) %s, %s against %s inserted -- the excess is "+ + "advertising baked in rather than inserted, which the length gap cannot see", + len(found), how, clock(total), clock(gap)) + default: + return fmt.Sprintf("%d ad candidate(s) %s, %s of the %s inserted (%d%%)", + len(found), how, clock(total), clock(gap), total*100/gap) } - return fmt.Sprintf("%d ad candidate(s) %s, %s of the %s inserted (%d%%)", - len(found), how, clock(total), clock(gap), total*100/gap) } // pendingRecognition is every mirrored episode still without words, newest first. |
