There’s nothing dramatic about most ad-security incidents. No zero-days. No nation-state operators. Just a phishing email that looked like a real Google Ads access invitation. An unsigned postback URL nobody got around to fixing. A bank account change request that landed at 4:47 PM on a Friday and got approved by Monday.
The cost is dramatic enough. A Manager Account (MCC) takeover drains agency budgets in hours. A leaked launch creative runs to about $8 million on average in consumer electronics, fashion, and luxury. A forged postback on an open endpoint quietly pays out conversions that never happened.
Each of these starts with one missing control on the advertiser side. A login nobody rotated. An endpoint nobody signed. A token nobody put in a vault. An agency analyst nobody removed when the contract ended.
This is a checklist for brands and advertisers. The order matters because the layers compound: connections, conversion data, credentials, accounts, agency partners, and the brand surface itself. Skip one, and the others stop protecting. Publishers face a parallel set of issues; that’s a separate piece.
The advertiser surface is layered. Five rings, each wrapped around the one inside it – from the connections your traffic rides on, down to the brand itself.
Attackers test the outer rings first because they’re cheap to probe: a tracker URL is public, an unsigned postback returns a 200 OK if you guess the format, and a leaked token shows up in code search within minutes. When something gives, they move inward.
Each layer they cross gives them more leverage on the next, which is why securing one in isolation rarely helps. The point of mapping all five rings of the programmatic surface is to see where the gaps between them actually live.
Connections
Outer · Attacker tests first
Anything traveling between a browser, app, or partner server and your tracker, dashboard, or API.
What goes wrong A stray HTTP redirect in the click chain leaks click IDs and source IDs to whoever sits in between.
Conversion data
Postbacks · S2S · Pixels
The events that say a sale happened — postbacks, server-to-server calls, pixel fires.
What goes wrong A forged postback on an unsigned endpoint quietly pays out conversions that never happened.
Credentials
API keys · OAuth · Secrets
API keys, OAuth refresh tokens, webhook signing keys, BI-tool connectors. Anything that proves you are you.
What goes wrong A token hard-coded into a public repo is scraped within minutes and used to drain billing.
Accounts
Logins · Agencies · MCC
Dashboard logins that hold every credential and every dollar of budget — plus the agencies and freelancers who can touch them.
What goes wrong A phishing email mimicking a real Google Ads MCC invitation drains agency budgets in hours.
Brand surface
Core · Public face of the campaign
The domain, the email channel, the creative — everything that exists before a campaign even goes live.
What goes wrong A lookalike domain runs ads against your own brand name; a launch creative leaks weeks early.
The layers compound. An HTTPS tracker with an unsigned postback is still exposed. A signed postback with a leaked API key is still exposed. Skip one and the others stop protecting.
Nothing exotic. The defenses aren’t either.
Every URL that touches a campaign – landing page, tracker, postback, API, dashboard – should use HTTPS with TLS 1.2 or higher. OpenRTB v3.0 makes this mandatory for programmatic; the imp.secure flag in bid requests marks a publisher slot as requiring secure creatives, so non-secure assets get filtered out before they serve.
The usual failure isn’t the landing page. It’s a stray HTTP redirect in the click chain: a 302 through a non-HTTPS hop that leaks click IDs, source IDs, and any URL parameters.
What to check:
A postback is the request a tracker sends to record a conversion. In most setups, it carries the click ID and maybe a sub-source identifier – the payout amount itself usually lives on the tracker side, tied to the offer’s configuration, not in the URL. What a postback URL is and how S2S tracking works covers the mechanism.
The security problem is simpler than the mechanism: if anyone can guess the URL, anyone can fire it. The tracker logs a conversion. The configured payout for the offer is paid.
Unsigned · Default
Attacker
scraped click IDs
from logs
GET /conv?id=ABC123&sub=src-7
Tracker
checks click-ID
only
Accepted
conversion logged · offer-config payout paid
Signed · HMAC + Timestamp
Attacker
no shared secret
POST /conv
X-Signature: forged · X-Timestamp: stale
Tracker
verifies HMAC
server-side
Rejected
signature mismatch · request dropped
Four recurring failures:
The right answer depends on what the network supports. The strongest pattern used by mature webhook systems like Stripe, GitHub, and the major mobile attribution platforms is HMAC signing: a keyed hash that proves the request originated from something that holds your shared secret, as defined in RFC 2104.
Include a timestamp, validate the signature server-side, and reject anything outside a short window. Adoption in traditional affiliate tracking is uneven; many networks still rely on IP allowlisting plus click-ID uniqueness rather than signed payloads.
Networks publish their own S2S setups; for example, PropellerAds documents its S2S conversion-tracking integration. Industry guidance consistently names the same three defenses: IP allowlisting, signed requests where supported, and strict click-ID validation against the original click record.
A working policy:
This won’t catch every form of conversion fraud. It removes the cheapest one: a forged HTTP request.
Every ad-platform integration is a credential. The token that pulls campaign data into Looker. The refresh token that lets a bidding script raise budgets overnight. The OAuth grant the agency’s audience-sync tool got two years ago, and nobody has revoked. The Zapier zap that’s been firing every Tuesday since 2023 from an account no one in marketing remembers setting up.
Some carry write access to the budget; the read-only ones still expose campaign and audience data. In most organizations, none of these sit in the same secret manager that holds the database password.
Okta’s API security reference and current API key guidance translate cleanly to ad tech:
The login layer is where most ad security incidents begin.
2026 account-takeover reports across ecommerce and media keep pointing to the same recurring root causes: credential stuffing against accounts that lack a second factor, and session-cookie phishing through reverse-proxy kits.
Agency relationships add to the surface – every partner with manager access is another entry point.
Brand
Acme Co
Agency MCC
Manager Account · Google Ads
Brand account · US
primary spend
Brand account · EU
Brand account · APAC
Users on US account
The login layer:
The agency layer:
The brand itself is part of the attack surface. Lookalike domains, paid-search impersonation, and spoofed email all turn the brand’s own reputation against it.
Zscaler ThreatLabz analysis of typosquatting and brand impersonation documented roughly 10,000 malicious domains across 30,000 brand-impersonation candidates in one scan; the Netcraft 2026 brand protection guide treats time-to-detect and time-to-takedown as primary metrics.
Authenticate email. Without controls, anyone can send mail pretending to be from your brand’s domain. Three records together stop this.
Monitor lookalike domains. New registrations resembling the brand should generate an alert. Certificate Transparency (CT) logs let monitoring tools catch lookalikes the moment a TLS certificate is issued. Specialist vendors handle takedown. The pattern isn’t theoretical: Adex documented one case where the typosquat propelerads.com (single “l”) sat dormant since 2013, then got repurposed to host defamatory content targeting the real ad network through brand-misspelling keyword stuffing.
Watch paid search for unauthorized brand bidding. A separate team or vendor bidding on the brand’s own keywords without permission is a recurring pattern. Performance teams see it in search-term reports; brand teams see it in trademark monitoring. Feed both into the same triage.
Use platform brand-protection programs. Google’s verified advertiser program and Meta’s verified business badge increase the cost of ad impersonation. They aren’t a substitute for the controls above.
Hold defensive registrations for the obvious variants. Common typos, plausible country-code versions, and the dozen most visible homoglyphs. The goal isn’t to register everything, just to deny the obvious dozen.
Leaks cost real money. A 2023 industry study put the average cost of a leaked product-launch visual at around $8 million, with consumer electronics, fashion, and luxury most exposed. The path is consistent: creative crosses an agency, a production partner, a media buyer, a verification vendor, and a measurement platform. Each handoff is a possible leak.
The defenses are mostly access hygiene applied to creative-ops tools.
Ad-security incidents often surface after the fact, not in real time. A Monday-morning look at the weekend spend report shows a spike nobody scheduled. The agency Slack thread starts mid-afternoon about an MCC nobody can log into. A customer-support ticket gets escalated up with a screenshot of an ad served from a brand-lookalike domain. By the time the picture comes into focus, the spend is gone, and the takedown takes weeks. The pattern that keeps showing up in post-mortems: the controls were in place, the monitoring wasn’t.
A single dashboard with a few signals, checked on a cadence, beats a thick policy document that no one reads.
Login locations
API token volume
FlaggedPostback rate by source
Linked-user changes
Lookalike-domain alerts
FlaggedWhat to watch:
When something does go wrong, the response is faster when it’s written down. A one-pager covers it: who to call, which credentials to rotate first, where the backup contact lives, and what to tell partners.
If only one section gets acted on, this one.
Technical baseline:
Account and agency:
Brand and creative:
Detection:
None of this is advanced. It’s the baseline that absorbs the everyday incidents. The advanced work: supply-path graph analysis, behavioral fraud modeling, pipeline-level engineering, red-teaming, sits on top. It doesn’t replace it.
Every section above ends in the same place: a named owner. The controls themselves are published in every vendor’s help center. The decisive step is naming someone, on the advertiser side, whose job it is to apply them. Enable a checkbox. Sign a request. Rotate a token. Audit a list. Each of these has to live on a real person’s calendar.
Postback endpoints sit between an agency, a tracker vendor, and in-house ops. MCC structures sit between marketing operations and the agency. BI connectors live in workspaces that the security team doesn’t audit. Brand domains sit between brand, legal, and IT. Five teams, none of whom think “ad-platform security” is their job. The gap between the controls and the practice is where incidents live.
So:
The basics compound. HTTPS with an unsigned postback is still exposed. A signed postback with a leaked API key is still exposed. A locked-down API with an account without MFA is still exposed. An account with MFA, but an unmonitored brand domain is still exposed.
Finish the chain.