Strong Metrics. Mostly Bots.
- Jun 1
- 5 min read
Updated: Jun 29
A LinkedIn campaign that looked healthy on platform revealed a more consequential truth: if you do not own measurement, you do not own the conclusion.

Platforms report performance, but not truth.
We have written about this before: platforms are built to report their version of performance — impressions, clicks, views, completion rates, return on ad spend. Useful signals, certainly, but not the same as business truth. The real work begins in the gap between what the platform says happened and what happened after the user action (click, view, etc.).
This campaign made that gap impossible to ignore.
What the campaign was designed to do.
Earlier this year, we launched the Dugbe blog with a clear objective: earn real readership among brand owners, marketing and media professionals. This was not lead generation disguised as content. It was an effort to put useful thinking into the market on media, measurement, streaming, and the structural blind spots that still create friction in digital advertising.
LinkedIn was the natural distribution channel. Between February and May 2026, we ran a series of sponsored posts promoting blog content to a defined audience of marketing professionals. The targeting was deliberate. The content reflected work and thinking we stand behind. And by LinkedIn’s own reporting, the campaigns looked healthy.
The platform numbers looked fine. The system didn't.
The campaign results showed click-through rates between 1% and 2% — above benchmark. Clicks were registering. On the surface, there was little reason to question performance.
But the moment we stepped outside the platform dashboard, the narrative broke down. Average read times on the blog were running between 8 and 17 seconds. Scroll depth was negligible. We could see the click. We could not yet trust anything that followed.
A 9-second read on a 900-word post is not a content signal. It is a measurement warning.
That is the continued problem with platform metrics in isolation: they describe delivery, not what happened after arrival.
What measuring behavior over clicks revealed.
Adding Microsoft Clarity to the website changed the diagnosis. Session replay confirmed what the read times were already suggesting: a large share of sessions arriving from the LinkedIn campaign were bots.
Across tracked days in the first campaign window, bot sessions outnumbered real-user sessions by more than 2:1. The platform reported clicks. Clarity showed who actually arrived. Those were not the same audience and treating them as if they were would have led to the wrong decisions.
The low read times were not a content problem. They were a measurement problem. And that distinction mattered. Had we stayed inside the platform dashboard, the easy response would have been to rewrite the hook, change the format, or question the content itself. That would have been the wrong diagnosis.
The content wasn’t failing. The measurement was.
This is what happens when brands continue to let platform metrics stand alone as the measure of success. You end up optimizing for the wrong problem.
How we fixed it.
Once the issue was clear, the next move was straightforward: repair the measurement environment before making any judgment about the campaign. That meant addressing every layer where false confidence had been introduced.
Cut the source: LinkedIn’s Audience Network extends ad delivery to third-party sites and apps beyond the LinkedIn platform. It lowers CPM and increases reach. It also opens a significant source for bot-heavy traffic that platform reporting won’t surface. We turned it off. Impressions dropped sharply. That was the point.
Filter at the domain: Platform settings can reduce the problem at the source, but they do not solve it once traffic reaches the site. Cloudflare was deployed as a filtering layer in front of the website host and enabled bot protection with custom firewall rules targeting known bot referrer networks. This is the layer that catches what the platform misses. If traffic quality matters, some version of this protection should exist on very brand domain. Platform reporting alone is not a serious measurement strategy.
Rebuild around what you can trust: We rebuilt performance review around the signals we could trust:
Clarity became the primary source of truth for real user behavior — scroll depth, active time, session quality.
Cloudflare sits upstream as the protection layer.
Web host analytics serve as secondary context.
When measurement stack became credible.
The second campaign window, ran after the fixes were in place, looked different on nearly every signal that mattered.
Signal | Before | After | What it means |
Click-through rate | avg. 1.7% | 0.5% | Better-fit audience |
Entry-level seniority | 35% of impressions | 0% | Exclusions held |
Bots vs. real (Clarity) | 2:1 bot | Ratio flipped | Infrastructure working |
Volume dropped. CPM nearly doubled. Both were expected. We removed the cheap inventory that had been inflating the numbers. What remained was smaller, more expensive, and far more credible. That is often the tradeoff when reporting gets closer to reality.
One detail is worth isolating: despite targeting specific seniority levels, Entry-level professionals captured 35 percent of impressions in the first window. This is a known feature of LinkedIn delivery optimization: the system looks for the cheapest available audience that still loosely fits the target. Entry-level professionals are abundant and inexpensive to reach. Adding explicit exclusions eliminated the issue. If seniority matters, do not just include what you want. Exclude what you do not.
Rethinking campaign performance reviews.
This is a blind spot worth naming. Platforms report their version of performance. Channel teams optimize to their metrics. And somewhere in between, brands are left trusting numbers no one has independently verified. Across any paid channel — driving traffic to content, a product, or a service — the dynamic is the same. Measurement doesn’t get fixed by the platform or the agency. It gets fixed when brands take ownership of it. |
A few implications belong in any serious campaign review:
Low read time and high bounce rate are bot signals first, content problems second. Before changing creative, verify who is actually arriving on the site. Platform clicks and on-site behavior should tell the same story—when they don’t, measurement is usually the issue.
Audience Network is a reach lever, not a quality lever. For B2B content campaigns where relevance matters, the CPM savings rarely justify the tradeoff in traffic quality. Turning it off is the more defensible default. Bot traffic is not unique to LinkedIn, and most DSPs offer pre-bid tools to reduce exposure before media is served. But where those safeguards are less visible, especially across third-party inventory, brands still have to take ownership of the measurement and the risk.
Platform exclusions do not always hold without active suppression. Delivery optimization will look for efficiency wherever it can. Explicitly exclude what you do not want — not just indlcude what you do.
Domain-level protection complements platform controls. Platform settings reduce the problem at the source. A CDN-based protection layer catches what gets through. Both matter.
“The campaign didn’t fail. It just became measurable.”
Platforms are built to report a version of success that favors delivery. This campaign reinforced a more durable operating principle: before changing the message, the audience, or the spend, make sure the measurement environment behind the signal can be trusted.
If this resonated download the one-pager. And if you're seeing similar patterns in your own campaigns — or want a second set of eyes on how you're measuring performance — we'd like to hear from you.
— Dugbe
Disclaimer: This post was refined with the help of AI tools for clarity and structure. The thinking and perspective are entirely ours. We use tools thoughtfully. We still think for ourselves.
