Running ad operations for a niche B2B publisher
Ad slots that survive theme updates, sponsorship fencing, weekly creative loads via the API, newsletter placements and a 6am show daily. The real job of publisher ad ops.
A specialist defence and security news publisher asked us to run the technology behind its advertising: the website’s ad slots, the weekly newsletter’s sponsor placements, and, once a year, a three-day event show daily that goes out every morning of a major exhibition. Here is what running ad operations for a niche B2B publisher actually involves, because it is a lot more than pasting a tag into a widget.
Ad slots that survive the theme
The site runs on a commercial WordPress magazine theme. Our first job was to move every Google Ad Manager slot out of the theme’s widgets and into a child theme, in code, so that theme updates stop silently deleting placements. Each slot is defined once, with size mappings per breakpoint, and the page requests them all in one call. Mobile detection is done in the browser rather than on the server, because the page cache serves the same HTML to everyone and a server-side check would be wrong half the time.
The theme’s breakpoints and the page builder’s breakpoints did not agree, so tablet-sized screens fell into a gap where no slot was defined and advertisers were paying for impressions that never rendered. We aligned the mappings and tablet inventory came back.
Sponsorship fencing and value-adds
Niche publishers sell sponsorships, not just impressions. A sponsor of the cyber section expects to own the cyber section, so we built fencing: slots on sponsored sections carry a key-value that line items must match, and the pinned mobile leaderboard appears only on articles in sections that currently have a sponsor. A standing five-logo site-sponsor strip sits in the header, trafficked as five fixed-size house creatives so the sales team can swap a logo without touching the site.
Weekly load, done properly
Every week the sales team hands over new bookings. Each becomes its own line item with its own creative, because the publisher reports stats per booking and reusing a line item would merge them. Creative loading is scripted against the Ad Manager API from a service account: one creative per ad unit, fresh names each time, because a creative reused by name without re-uploading the artwork will serve the old artwork. We learned that one the hard way.
Newsletter ads without the newsletter breaking
The weekly newsletter is built from a PHP template that pulls the week’s articles and inserts sponsor banners by position. The layout is fluid, the skyscrapers hide on phones, and every creative is a hosted image with a tracked link so the sponsor gets open and click numbers. It imports into the email platform through the API rather than by URL, because URL import injects a base tag that breaks the archive links.
The three-day show daily
During the industry’s biggest exhibition the publisher sends a show daily at six every morning for three days. We built the edition pipeline so an editor fills a config file the night before, a script assembles the edition with that day’s sponsors, embeds the digital flipbook, and schedules the send. Three editions, three mornings, no manual HTML at 5am.
Why this matters commercially
A B2B publisher’s revenue is a handful of sponsors who renew if their reports look right. Correct fencing, per-booking stats and creatives that actually render are the difference between a renewal and a difficult call. We run ad operations for publishers alongside the platforms underneath them.
Got a similar problem? Talk to us.
Start a project