Detect campaign traffic spikes without screenshot archaeology

Pin date ranges on your traffic timeline, label sends and posts, and read humps next to revenue, no CSV exports or slide decks.

All guides on this topic: Campaign spikes & pinned ranges

You sent the newsletter, posted the thread, and launched on Product Hunt the same week. Your analytics tab shows a bump, maybe. By Friday you are scrolling through daily totals in three tools, dropping PNGs into Slack, and arguing with yourself about whether Tuesday was “real” or a crawler burst.

That workflow is fragile. Screenshots do not remember the send time, they do not sit on the same axis as Stripe revenue, and they rot in a folder nobody opens in March.

This guide is the marketing pulse guides home base: how to see campaign humps on a timeline, pin the windows you care about, and compare them to baselines without pretending you have a data team.

What a campaign spike actually is

A spike is not “traffic went up.” It is traffic that clusters in time after a deliberate action you can name: issue #47, thread about pricing, PH listing day, partner mention, Zapier autopost batch.

Spikes have shape:

  • Onset: minutes to hours after the action (email) or immediate (viral post).
  • Peak: often same day for social, next day for email-heavy B2B lists.
  • Decay: 48–96 hours back toward baseline unless the post keeps getting shared.

Your job is not to worship the peak. It is to ask whether the area under the hump: visitors in the pin, justified the work, and whether revenue moved inside a reasonable lag window.

The screenshot trap

Screenshots feel like evidence. They are not.

  • They lack exact date boundaries: “last week” in a crop is ambiguous.
  • They freeze one metric: visits without revenue, or revenue without channel tags.
  • They do not compare to the prior baseline week at the same scale.
  • They encourage narrative after the fact: you remember the send was “sometime Wednesday” when the hump was Thursday UTC.

Replace screenshots with named pins: start date, end date, label (2026-02-newsletter-03, ph-launch-v2). The chart stays live; the pin is the footnote future-you needs.

Pins: the unit of campaign memory

A pin is a saved date range on your marketing timeline with a human label. Think of it as a bookmark on the traffic chart, not a filter that hides everything else.

Good pins are:

  • Short enough to defend: 7 days for a send + follow-up, 3 days for a single viral post, 14 days for launch + email tail.
  • Named with your campaign slug: same string you used in utm_campaign when possible.
  • Paired with a baseline pin: the 7 days immediately before, same length, no overlapping marketing blast if you can avoid it.

Bad pins are “Q1” or “launch stuff” spanning 90 days. You will average away the hump you wanted to study.

Deep dives:

Marketing pulse: traffic and revenue on one timeline

Marketing pulse is the chart view that plots daily (or hourly) visitors beside revenue events from webhooks, Stripe, Gumroad, Lemon, or custom HTTP. The point is alignment: when the line jumps, you see whether money jumped too, or lagged, or never moved.

Pulse is not a replacement for ad platform reporting or finance close. It is the founder’s week-in-review surface: did the thing I shipped move both eyeballs and checkout?

If you only have pageviews, you still get value from pins on the visitor line. If you have webhooks, overlay revenue and stop guessing whether the send was “good” from clicks alone.

Baselines beat rolling averages for indie volume

Under ~10k monthly visits, a 28-day rolling average smooths your signal into oatmeal. Campaign review needs fixed windows:

WindowUse
Pre-baseline pinSame length, immediately before campaign
Campaign pinSend day −1 through +5 or +6
Post-decay pinDays 10–16 after, optional

Compare visitors in pin, revenue in pin, and ratio (visits per sale or RPV) between baseline and campaign. Same discipline as Product Hunt week baselines and digital product traffic-to-sales.

UTMs tell you who; pins tell you when

UTM attribution answers “which link drove sessions.” Pins answer “what did the whole initiative do in calendar time.”

You need both:

  • Tagged links for channel credit inside the pin.
  • Pins for initiative credit when you ran email + social + a blog post with the same offer.

If UTMs are missing on one link, the pin still captures the blended hump. Fix UTMs before the next send; do not throw away the week’s story.

Reading lag honestly

Traffic often leads revenue:

  • Newsletter: clicks day 0, purchases day 2–7 common for SaaS trials and courses.
  • Social: impulse buys same day; considered B2B signup later.
  • Launch: bots and browsers day 0, humans and buyers day 1–3.

Extend revenue evaluation 7–14 days beyond the traffic pin for email-heavy offers. The guide on newsletter send weeks walks through a concrete calendar.

Crawlers and bots pollute spikes

Indexing bots, preview fetchers, and AI crawlers spike after launches and press. They inflate visitors without buyers. Filter known bot user-agents in your tracker; read AI crawler guides when docs traffic doubles overnight.

A pin that includes launch day without a bot filter teaches the wrong lesson. Compare human-shaped spikes vs bot swarms before you rewrite the landing page.

Weekly review ritual (20 minutes)

  1. List what you shipped: sends, posts, launches, automations.
  2. Create or confirm pins for each with correct UTC boundaries if your audience is global.
  3. Open marketing pulse, visitor line + revenue if connected.
  4. Note baseline pin for the week before each initiative.
  5. Write one sentence per pin: “Up 40% visitors vs baseline; RPV flat, awareness not conversion.”
  6. One action item, fix CTA, extend trial, mail again, or ignore noise.

No export. No deck. The chart with pins is the archive.

Pairing pulse with RPV and Stripe attribution

When checkout webhooks land in the same product as the tracker, you can read RPV by week inside pins. When only Stripe metadata carries UTMs, pair Stripe checkout tied to landing pages with pins for launch narrative.

Pulse does not solve identity across devices. It solves “did this week’s blend of traffic pay?” at founder granularity.

Common mistakes

Merging launch week into “month to date.” Launch humps drown in quiet days; you conclude “meh month.”

Pinning too wide. A 30-day pin around one tweet averages the spike to invisibility.

Ignoring timezone. Send at 9 a.m. US Eastern; EU traffic hump may land “next day” in UTC daily buckets, see post time vs hump lag.

Judging email in 24 hours. Inbox lag is real; use a 7-day pin minimum for revenue.

Chasing bot spikes. Fix filters; do not buy ads to replicate crawler traffic.

Automation and Zapier weeks

n8n and Zapier runs create repeating humps. Pin the automation week when you change templates or targets. A flat revenue line with rising visitors often means a broken link in the zap, not “SEO kicked in.”

What to log in the pin label

Include:

  • Initiative slug (2026-02-winter-offer)
  • Channel mix if blended (email+x-thread)
  • Optional outcome shorthand after review (+visitors -rpv)

Future you greps labels faster than memory.

Where KiboData fits (no oversell)

KiboData is a lightweight tracker plus dashboard: first-touch UTMs in session, webhook revenue on shared dates, pinned ranges on the marketing pulse chart, and crawler visibility for docs-heavy sites. It is built for self-serve founders who outgrew “check Plausible once a day” but do not want a CDP.

It does not replace Google Ads reporting, HubSpot journeys, or revenue recognition. It does not merge users across phones and laptops. Free tier includes core tracking with a badge; lifetime Pro removes the badge requirement. Webhooks and API access depend on your plan, check current docs before you assume enterprise features.

If your only need is a traffic line, many tools work. If you need pins + revenue on the same timeline without Sunday CSV merges, that is what marketing pulse is for.

More guides

ArticleFocus
Newsletter send week pins7-day windows, lag, UTMs
Post time vs hump lagSocial timing and UTC buckets
Bot swarm vs human spikeLaunch day noise

More on this topic: marketing pulse guides

Checklist

  • Every major send or launch has a named pin
  • Baseline pin of equal length before each campaign pin
  • Revenue webhook tested on production
  • Bot filtering reviewed after big press or PH
  • Review written in one sentence per pin, not screenshots
  • UTMs on external CTAs match pin campaign slug

Campaign spikes are normal. Losing the memory of them is optional. Pin the range, read the pulse, compare to baseline, and move on to the next ship.

More on this topic