Skip to content

Work/Media

Campaign data normalized across platforms

Every source counted differently. A view was not a view, and the monthly report took a week to assemble and a week to defend.

Ad operations and analytics4 min read

Sector, size, and function are stated. The client is not.

An ad operations analyst at a two-monitor workstation in the evening, a normalization run log on one screen and a client report draft on the other, a spiral-bound metric dictionary on the desk
Discrepancies shown, not averaged

At a glance

Sector
Media
Function
Ad operations and analytics
Data cleaned first
Owned sites, video platforms, social channels, third-party ad servers, all with different definitions of the same word
Written and signed off
A metric dictionary
Shown, not hidden
Source discrepancies
Engagement
Dictionary work, then ingestion build

The short version

The reporting cycle went from days to hours

Delivery data arrives normalized, with the commentary already drafted from it and ready for an analyst to check.

Disputes are settled by pointing at a definition

A dated, signed definition ends the conversation. Rebuilding the report from scratch used to be the only answer available.

Analysts moved onto yield and audience work

The job they were hired for, and had not been doing because defending figures took the week.

Why defending numbers had become the job

Monthly client reporting ate the best part of a week. Clients challenged the numbers often enough that the analytics team spent more time defending figures than producing insight.

Two jobs suited automation. Normalizing messy multi-source data at a scale manual mapping could not sustain, and drafting the commentary analysts were writing by hand every month.

A signed metric dictionary came first

Everything downstream depends on this document existing.

Sessions with ad operations, editorial analytics, and the commercial team.

A metric dictionary was written and signed off, which took three attempts. That included the uncomfortable decisions. Which source is authoritative for which metric, when two of them disagree and both have a case.

Taxonomies got mapped across platforms, one at a time. Advertiser and agency hierarchies were resolved so a holding company’s spend could be seen whole.

The data job included historical reprocessing so year-on-year comparisons held, deduplication of campaign identifiers, and normalization of time zones and currencies.

Discrepancies between sources were preserved rather than averaged away. The discrepancy is often the finding.

That produced one hard conversation. The dictionary contradicted a large advertiser’s own reporting on view counts, and the media group had to go and explain why. It went better than expected, because the definition was written down and dated.

What was built, and what it refuses to hide

The interesting part is the third component.

An ingestion and normalization layer feeding a reporting agent.

Client reports

Delivery data, with commentary drafted from it and ready to send.

Ad hoc answers

The commercial team asks directly instead of filing a request with analytics.

Visible disagreement

Where sources conflict, the report shows both figures and the definitional reason for the gap.

A client report showing two different figures for the same metric side by side, one from the ad server and one from the platform, with an expandable note explaining the definitional difference
The disagreement, on the page. Two figures, the gap between them, and the definitional reason for it, rather than one clean number nobody can defend.
Design decision, and the argument against it
Showing source discrepancies rather than reconciling them was contested internally. The case against: it makes reporting look uncertain. The case for, which won: a client who finds the gap themselves stops trusting everything else. Three advertisers have since asked for the discrepancy view specifically.

bearingbridge.ai project record, phase Build

Where it stands after a few months

The reporting cycle went from days to hours.

Client disputes are now resolved by pointing at a documented definition instead of rebuilding the report from scratch.

The commercial team self-serves most of its questions. Analysts moved onto yield and audience development, and it is what the team had been hired to do and had not been doing.

Months later the dictionary had been amended several times, each amendment dated and circulated. That maintenance is the whole reason it still works.

Three things that made it work

The dictionary was signed, not circulated

An unsigned definition is just an argument waiting to happen, and it happens in front of a client.

Discrepancies stayed visible

Averaging them away would have produced clean reports and disputes nobody could win, which is the trade most media reporting quietly makes.

Historical reprocessing got done properly

Skip it and every year-on-year comparison is wrong in a way that surfaces about nine months later.

Figures on this page are client-verified and published with permission. Where a figure is absent, the outcome is described in operational terms instead.

Talk to us

Talk to us about AI.

A conversation with the senior team about your markets, your data, and where AI would actually pay back for you. No slides, no obligation, and if the honest answer is that AI is not your next move, you will hear that too.