If you're seeing missing external IDs in your Vector activity, especially when using our API to pass identifiers, this documentation will help you troubleshoot a fix.
In most cases, missing external IDs are caused by a timing issue — the identifier simply doesn’t fire before the user navigates away. This happens in less than 20% of sessions and is expected behavior due to browser limitations or user interaction patterns.
A visitor loads your site, but before the external ID is passed to Vector, they navigate away. As a result, the event is recorded without an identifier.
In some cases, you may notice a pattern — for example, every other event from the same user has an external ID, while others don’t.
This usually indicates a double-loading issue in your implementation:
The Vector pixel or API is being initialized twice.
One instance successfully passes the external ID.
The other instance does not.
Look for repeated visitor entries with:
Matching IP address or ISP provider
Alternating presence/absence of external IDs
If every other entry looks like it’s from the same user but is missing an external ID, this strongly suggests a duplicate initialization.
Review how Vector is being initialized on your site
Ensure it’s not being loaded twice unintentionally
Check for multiple script injections
Especially if using a tag manager, CMS, or dynamic loading
Test identifier firing timing
Make sure identifiers are available before the user has a chance to navigate away
Missing external IDs are usually either:
A normal byproduct of user behavior (minority of cases)
An implementation issue where Vector is being loaded twice, leading to inconsistent identifier passing
By reviewing and adjusting your integration, you can ensure consistent ID delivery and avoid data gaps.
Still seeing ghosts in your data? Boo 👻 us at support@vector.co — we’re happy to help!