How to Detect PPC-Affiliate Overlap: Order Joins, Theme Maps, and Pixel Checks
A brand-bid ban and a “no affiliate pixels” policy feel like detection. They are not. Overlap hides in order joins, search-term themes, and remarketing audiences - not in the TOS PDF. Detection is an export problem. Policy is a later argument.
Cut/scale decisions belong in the attribution collision audit. This piece builds the detection map that audit needs: order-level joins where both channels touch the same sale, theme-level pressure where they share commercial intent, and pixel permission checks before anyone bans tags by reflex.
The failed assumption: policy is not detection
Operators often treat a clean trademark clause and a blocked third-party pixel as if they answered the overlap question. A program can forbid brand bidding and still see PMax Search inventory claim a conversion that an affiliate review seeded days earlier. A blanket pixel ban can hide a partner tag still firing through a tag-manager consent category you never inventoried.
The structural scenario: affiliate volume rises, in-house PPC ROAS holds, blended margin stays flat, and neither spreadsheet joins the two books. Finance sees total acquisition cost creep. Each team trusts its own dashboard. Neither dashboard proves collision.
Trademark clause fights live in the brand-bidding audit. This article is the export map and the pixel-permission checklist.

What you are detecting
1. Order-level channel collision. The same commerce order carries a paid-search click identifier (often gclid) and an affiliate click ID or SubID. That is the join that survives row by row. Most network conversion exports give SubID, click time, landing, and order - not the Google query the shopper typed. Do not invent a query-text join that the affiliate file cannot supply.
2. Theme-level pressure. Commercial themes in the Google Ads search terms report (and search terms insights for low-volume groupings) line up with affiliate landing clusters in the same window. This is aggregated pressure, useful for triage, not a one-to-one verdict.
3. Retargeting pixel interference. A partner pixel builds audiences that compete with in-house remarketing and can muddy last-click. Detection is audience membership versus the affiliate click log, plus a permission inventory - not a moral claim.
Brand CPC pressure and Auction Insights coincidence are useful gauges, not courtroom proof. Export impression share, overlap rate, and outranking share for the brand terms (or campaigns) that matter, align those dates with affiliate soft-volume spikes, and treat unfamiliar domains as a handoff signal to the brand-bidding audit when the fight becomes clause language. Paid plus organic dual presence can raise blended CTR while incrementality stays unknown - treat share-of-voice theater separately from the order map.

Failure-mode map
Level 1 join: order keys. Fix one date window and time zone using Ads’ own time-lag picture: Google’s conversion windows Help recommends the attribution time-lag report when you are unsure how long after a click conversions still arrive. From Ads, pull conversions that still carry gclid where your stack stores it. From the network (or your hop), pull SubID / click ID and order ID. Flag every order that shows both identities. Optional enrichment: Ads click_view-style reports can attach keyword context to a gclid for a given day - still join on the order, not on free-text query matching to the affiliate file.
Level 2 map: search themes vs affiliate landings. Export search terms for Search campaigns, brand vs non-brand. Current Help: the report covers Search Network queries that meet volume thresholds; low-volume terms are omitted for privacy and may appear only as grouped insights / “other queries.” Display and YouTube delivery is audience- or placement-driven, not query-triggered, so those impressions never show as typed search terms. Cluster affiliate landings by category or URL pattern for the same window. Theme overlap is a signal to prioritize which orders to inspect - not proof by itself.
PMax fog (scoped). Broad match and PMax can steal the story from an affiliate assist when both fire on Search inventory. For brand-query control on PMax, Google documents brand exclusions and recommends them when you want to keep brand traffic in a separate campaign; for PMax they apply to Search and Shopping inventory (apply brand exclusions also notes YouTube search inventory). PMax negative keywords likewise apply to Search and Shopping inventory only. After you have proven theme or order overlap, shared negatives become hygiene - not the detection method itself. An Adalysis vendor study (PMax vs Search in the same accounts, excluding retail feeds) reported high search-term overlap and cases where Search converted more efficiently when both fired - treat as PPC-vs-PPC hypothesis to verify in your account, not evidence about affiliates.
Brand paid closing after affiliate first touch. Compare affiliate click timestamps to brand-paid clicks and conversions inside the lookback you chose from the time-lag report. Material prior-affiliate rates on paid brand conversions are assist collisions for the collision audit to price - here you only measure the join.
Pixel interference. List every partner pixel (including tag-manager / subnetwork installs). List every remarketing audience you control and which pixels feed it. You usually cannot see the partner’s audience sizes, frequency, or ad spend from your Ads account - those live in their accounts. That visibility gap is why permission questions come before a blanket ban: which network, which audience rules, frequency caps, converter exclusions, and whether you get reporting. Structural incrementality check: blank-creative or geo/pause holdout on the partner remarketing path when the join is still ambiguous - not a fabricated lift %. A blanket “ban all affiliate pixels” rule is theater until that inventory exists.
Dual-channel own-goals and measurement fog. If you run paid and affiliate on the same property, both books can claim one order without a UTM+SubID spine - see UTM, SubID, and server-side proof. Consent and modeled conversions can look like theft when one side is simply undercounted - see the cookie consent tax piece before you accuse a partner. Do not surrender with “platforms never match.” Audit the biggest order overlaps first.

Attribution windows that break the join
“7-day click / 1-day view” is Meta Ads Manager language for standard attribution settings: credit conversions within 1 or 7 days after a link click, and within 1 day after an impression (Meta attribution settings). It is not Google’s default.
Google Ads conversion windows are separate controls. Current Help: if you never customize the click-through window, the default is 30 days; default view-through is often 1 day; engaged-view defaults are documented separately (About conversion windows). Use the time-lag report there to size the join window to how your buyers actually convert. Affiliate cookies, Ads, and Meta almost never share the same clock. Document the mismatch. Pick commerce or network payout as the revenue system of record before arguing who “won.”
One-sitting checklist
- Lock one date window and time zone using the Ads attribution time-lag report (Help above), then align affiliate exports to that same window.
- Export Ads conversions / clicks that retain gclid where your stack stores it; brand vs non-brand.
- Export affiliate conversions with SubID / click ID, landing, and order ID.
- Join on order ID (primary). Flag dual-identity orders. Optionally enrich paid rows with keyword context from click-level Ads data - still keyed to the order.
- Export search terms (and insights themes for privacy-omitted volume). Map themes to affiliate landing clusters - secondary triage only.
- Pull Auction Insights (impression share, overlap rate, outranking share) for brand terms and line those dates up with affiliate volume.
- Inventory partner pixels and remarketing audiences; write permission rules (network, frequency, converter exclusions) because partner audience/spend details are not in your Ads UI.
- On PMax, check brand exclusions / Search-Shopping negatives against Help, then cross-check GSC brand demand lightly. Add shared negatives only after overlap is proven.
- Document overlap as an order rate and a theme list for the collision audit. If still ambiguous, schedule a geo or pause test with a pre-registered metric (geo-holdout runbook).
- Do not cut a channel on one dashboard. Pass trademark patterns to the brand-bidding audit only when the fight is clause language.

After the map
Hand the overlap evidence to the attribution collision audit for cut/scale math. When collided segments look like recycled buyers, use the new-to-file KPI. Coupon late-click closers are a separate detection lane in the coupon cannibalization signals post.
Undetected overlap is how you fund the same intent twice in the story and once in the bank - or kill the assist you never measured. A weekly order join is cheap. Guessing after a flat quarter is expensive.