Repository navigation
analytics: report IntentIQ, GrowthCode and TransUnion EID presence, catch LiveIntent's main ID - #357
Open
MO-Thibault wants to merge 4 commits into
Open
MO-Thibault wants to merge 4 commits into
MO-Thibault wants to merge 4 commits into
Conversation
…ent's main ID Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This was referenced Oct 5, 2026
mosherBT
reviewed
Oct 8, 2026
| intentiq: (e) => e.matcher === "intentiq.com" || e.source === "intentiq.com", | ||
| growthcode: (e) => e.inserter === "growthcode.io" || e.matcher === "growthcode.io" || e.source === "growthcode.io", | ||
| transunion: (e) => e.source === "neustar.biz", | ||
| }; |
Contributor
There was a problem hiding this comment.
We can make this accept a param from wrappers so we don't have to constantly update this if new ones are on a page for certain tenants. Not blocking
mosherBT
approved these changes
Oct 8, 2026
This was referenced Oct 9, 2026
Port the COMPETITOR_EIDS rules from the V1 add-on to V2: per-bidder iiqSources, gcSources and tuSources, and auction-level intentiqEIDs, growthcodeEIDs and transunionEIDs. LiveIntent detection in V2 now also matches source === "liveintent.com", so its main ID is no longer missed. Rules run on the EIDs before the source dedupe, like the existing V2 LiveIntent check.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Both Prebid analytics add-ons, the V1 prototype (
lib/addons/prototypes/analytics.js) and V2 (lib/addons/prebid/analytics.ts), now report which competitor identity vendors put EIDs into each auction, next to the existing LiveIntent field: IntentIQ, GrowthCode and TransUnion.intentiqEIDs,growthcodeEIDsandtransunionEIDs: the EID sources each vendor delivered, same shape asliveintentEIDs. Per-bidderiiqSources,gcSourcesandtuSourcessit next toliSources.source === "liveintent.com". LiveIntent's main ID carries noext.provider, so the old filter missed it.COMPETITOR_EIDStable at the top of each file. The two copies are identical.V2 port
lib/addons/prebid/analytics.md.Why
To measure our uplift against what else is enriching the same bid requests, we need to know when a competitor's IDs were present. Until now we could only see LiveIntent's partner IDs.
Detection rules
source === "liveintent.com"oruids[].ext.provider === "liveintent.com"libraries/liveIntentId/shared.js; Freestar auctionmatcher === "intentiq.com"orsource === "intentiq.com"inserter: freestar.com,matcher: intentiq.com,mm: 5);sourceis what Prebid'sintentIqIdSystememitsinserter,matcherorsourceis"growthcode.io"source === "neustar.biz"(Fabrick ID, no other tags)fabrickIdSystem; Freestar sends it to all bidders on 9 of 11 sites checked (reuters, apnews, fortune, aljazeera, ...)The tags come from each vendor's server, not from their client code, so they were confirmed on live pages. Some publisher wrappers strip
inserter(MinuteMedia does on si.com), so each rule also checksmatcherorsource.Known gaps
ext.provider; not matched here.auctionDelay), sotransunionEIDsundercounts first auctions.Overlap with #351
#351 edits the same per-bidder block and
witnessData, in V1 and now also V2 (itspageobject). Whichever merges second needs a small rebase.Test plan
COMPETITOR_EIDSagainst captured auctions: essentiallysports and si.com return GrowthCode sources only; an excerpt of a Freestar auction returns LiveIntent (liveintent.com,uidapi.com,openx.net) and IntentIQ (adsrvr.org,intentiq.com), with no match on Optable's own EIDs or the native TTD ID; aneustar.bizEID matches only the TransUnion rulelib/addons/prebid/analytics.test.ts(3 new): LiveIntent's main ID matched by source, IntentIQ/GrowthCode/TransUnion per bidder and at the auction level (including each rule'sinserter/matcher/sourcevariants), and no match on Optable's own EIDspnpm test(583 passed after the master merge);pnpm build-libpasses;prettier --checkcleanintentiqEIDs,growthcodeEIDsandtransunionEIDsappear inauction_processed(V1) andoptable.prebid.auction(V2) events for a tenant known to run each vendor🤖 Generated with Claude Code