All rise. UI Court is now in session, the Honorable Judge Patricia Semantics presiding. Today’s defendant is accused of following every visitor around the website, and of bringing 38 friends along to help.
The defendant arrived late. Its page was still loading.
The charges
The clerk read three counts into the record.
- Unlawful assembly. The landing page has one headline, one form, and one button. It also loads 38 third-party scripts: three analytics tools, two session recorders, a heatmap, a chat widget nobody answers, and a pixel for every ad network the company has ever met.
- Following without consent. Several of those scripts start tracking the moment the page opens, before the visitor has touched the cookie banner. The banner is still loading too.
- Abandoning tags. Investigators found tags for campaigns that ended in 2019. Nobody remembers who added them. They are all still running.
The defendant pleaded not guilty and asked whether it could drop a cookie on the jury.
Opening statements
Prosecution: Your Honor, every one of these scripts competes with the page for the same browser. They download, they run, and they hold the main thread while the visitor waits for the button to respond.
Defense: We can’t improve what we don’t measure.
Judge Semantics: Counsel, how many of these 38 tools are you using to improve things?
Defense: We measure that with a separate tool.
The witnesses
The prosecution called a 1×1 tracking pixel. The bailiff, a focus ring, spent several minutes trying to locate the witness before finding it in the corner of the stand, transparent.
Prosecution: What do you do?
The pixel: I load. Then I tell a server somewhere that someone loaded me.
Prosecution: And what does that server do with it?
The pixel: I’ve never been told. I’m one pixel. I don’t get invited to the meetings.
Next, a visitor on a train testified that she tapped “Get a quote” four times before anything happened. “The page looked ready,” she said. “It was not ready. It was busy telling eleven companies that I’d arrived.”
The court reporter, a screen reader, added for the record that the chat widget had announced itself three times during her testimony.
The defense called the Head of Growth, who explained that every tag had a good reason at the time. “The social team needed one. Then the agency needed one. Then the new agency needed one. We never removed the old agency’s, because what if they come back?”
On cross-examination, the prosecution asked who reviews new tags before they go live.
“Nobody needs to,” the Head of Growth said proudly. “That’s the whole point of the tag manager.”
Exhibit A
The prosecution entered a performance report showing the page twice: once as shipped, and once with every tracking script blocked. The blocked version loaded noticeably faster and responded to the first tap.
The defense objected that the faster version had no data about how fast it was. The objection was overruled.
The verdict
The jury found Digital Marketing guilty on all three counts.
The jury also noted that it had been retargeted with ads for this trial on four different websites during deliberation.
Sentencing
Judge Semantics handed down the following sentence:
- Take inventory. Every tag gets an owner, a purpose, and an end date. A tag with no owner gets removed. The old agency is not coming back.
- Pick one analytics tool. Three tools that disagree about traffic are not three times the insight.
- Wait for consent. Nothing that tracks people runs until they’ve answered the banner, and “No” is as easy to press as “Yes.”
- Load the rest later. Scripts that don’t affect what someone sees load after the page is usable, or when someone actually needs them. The chat widget can wait until somebody clicks “Chat.”
- Set a budget. Engineering and marketing agree on how much third-party code a page can carry. New tags fit inside it or replace something.
- Mask the forms. Session recorders must not capture what people type into fields.
The pixel was released without charges. “You were just following orders,” the judge said. Nobody could tell whether it heard her.
Court is adjourned. The defendant asked the court to rate today’s proceedings from one to five stars. The request was denied.
This case is part of the UI Court series.