live sportsaudit logbehind the scenes

One Rule, Four Correct Calls: Our Audit Log from a World Cup Quarter-Final

AdTrigger TeamJuly 15, 20265 min read

On July 11, Norway played England in a World Cup quarter-final. Before kickoff, we pointed one AdTrigger rule at the match — on our own test campaign — to see how the engine would handle a live knockout game with the whole world watching:

WHEN Norway are in the lead → THEN enable the ad group "Fan Merch — Norway".

That's the entire configuration. One condition, one action. The rule's semantics do the rest: while the condition holds, the ads run. The moment it stops being true, they're paused again. Nobody touched it after kickoff.

What the audit log recorded

TimeEventScoreAction
21:38Norway goal1–0ENABLED
21:49England goal1–1PAUSED
22:19Norway goal2–1RE-ENABLED
22:20VAR overturn1–1PAUSED

Four actions, all correct, zero human input — and every row logged with the trigger reason that caused it.

The row that matters is the last one

The first three rows are what you'd expect from any system that checks scores and flips a switch. The fourth row is the one we built for.

At 22:19, Norway scored to go 2–1 up, and the rule re-enabled the ads. Sixty seconds later, VAR overturned the goal. The score went back to 1–1, "Norway are in the lead" stopped being true, and the engine paused the ads again — within a minute of the decision.

Think about what that minute looks like for a human running the same play manually. You're watching the match, you see the goal, you switch to the ads dashboard, you enable the campaign — and while you're doing that, the referee is drawing a rectangle. Most fans in the stadium hadn't fully processed the overturn by the time the engine had already acted on it.

Nobody scripts VAR into their campaign plan. That's exactly why the engine doesn't track events — it tracks whether the condition is true right now, checked every minute while the match is live. Goals, overturns, equalizers, red-card collapses: the rule doesn't need to understand any of them. It only needs to know whether Norway are in the lead.

Why "in the lead" and not "scores a goal"

The difference sounds academic until match night. An event-based trigger ("when Norway score, enable the ads") would have enabled at 22:19 and then kept the ads running after the overturn — spending money on "Norway are winning" merchandise while Norway were, in fact, drawing. A state-based condition can't drift like that: every check re-asks the question from scratch, and the answer at 22:20 was no.

That's also why the log reads the way it does. Every PAUSED row is the condition going false; every ENABLED row is it going true. The log isn't a list of things the engine noticed — it's a list of things the engine did, each with the reason attached. When you're explaining ad spend to a client (or to yourself at the end of the month), that distinction is the whole ballgame.

What this looks like for a real campaign

Our test rule ran fan merchandise, but the shape applies to any spend that only pays off while a moment is live:

  • Fan merchandise — jerseys and gear for the team that's winning, while the fans are celebrating.
  • Sports bars and pubs — "watch it here" ads in the hours before kickoff, off again at full time.
  • Match-night takeaway — delivery offers while people are on the couch, not the morning after.
  • Brand safety in reverse — pausing display campaigns during big matches, when your audience isn't scrolling anything.

Live sports triggers cover soccer across Premier League, UEFA Champions League, Bundesliga, Serie A, Ligue 1, MLS, and more, plus ATP and WTA tennis — all checked minute-by-minute while play is on. The sports use case page has the full league list and step-by-step playbooks, including the exact rules for each example above.

The World Cup is over. The engine that handled its strangest minute is what your rules run on every match night.

Ready to automate your ads?

AdTrigger lets you pause, enable, and adjust campaigns automatically based on weather, events, and real-time data.

Start Free