How BPP Identifies Your Customers Across Data Sources
Why this matters
Your customer data arrives from many places — your website, CRM, e-commerce platform, email tool — and each source tracks people differently. One system uses an email address, another uses a cookie, another uses a CRM contact ID. Without a unified view, the same person looks like multiple different users.
User reconciliation is the process BPP uses to link all those scattered identifiers to a single, stable profile: the Bytek ID. Once a person has a Bytek ID, every data point you have about them — from any source — can be connected together. This makes your audiences more accurate, your conversion signals more complete, and your ad platform match rates higher.
How it works (plain English)
BPP runs an automated background process that reads your connected data sources and figures out which records belong to the same real person.
The logic is straightforward:
- BPP looks at the identifiers on each record — email address, cookie ID, CRM contact ID, user ID, etc.
- If those identifiers already belong to a known profile, BPP links the new record to that profile.
- If no match is found, BPP creates a new profile and assigns it a Bytek ID.
- If multiple existing profiles turn out to share identifiers, BPP merges them into one.
The process runs automatically every day for every data source you have connected.
What happens after reconciliation
Once reconciliation runs, BPP adds a bpp_user_id column to your data. Every row gets stamped with the Bytek ID of the person it belongs to. This is what enables BPP to:
- Count how many unique people are in an audience segment (not just rows).
- Send the right identifiers when syncing to Google Ads or Meta Ads.
- Attribute conversion events to the correct user.
Supported identifier types
BPP can recognise and link the following types of identifiers:
| Identifier | Example | PII (privacy-protected)? |
|---|---|---|
| Email address | user@example.com | Yes — securely hashed before storage |
| First-party cookie | GA4 user pseudo-ID | No |
| Application user ID | Internal login ID | No |
| CRM contact ID | Salesforce contact ID | No |
| Lead ID | Lead management system ID | No |
Email addresses are always securely hashed before being stored or sent to ad platforms. BPP never stores plain-text PII.
How identity stitching works
BPP matches identifiers by their type and value, not by column name. This means:
- An email from your CRM and an email from your web analytics tool are recognised as the same identifier, even if the column names differ.
- When a previously anonymous user logs in, BPP automatically links all their prior anonymous activity to their now-identified profile — retroactively.
Merge rules
When BPP finds that two profiles share an identifier, it merges them into one. However, BPP is careful not to merge profiles that are clearly different people sharing a device. Merges are blocked when the two profiles have different:
- Device types (desktop vs. mobile)
- Countries
- Operating systems
- Or when their activity is more than 30 days apart on the same device
Identity coverage
BPP tracks how well your data is being resolved. For each connected data source, you can see:
- What percentage of records have been matched to a Bytek ID.
- How many unique profiles have been identified.
Low coverage on a data source usually means that source has few shared identifiers with your other sources — for example, an anonymous event table with no email or user ID columns. You can improve coverage by enriching your data with more identifier fields.
This coverage data is visible in the Data Diagnosis section of the BPP interface.
Freshness
BPP updates identity data automatically every day. New records added to your data sources overnight will be processed and resolved the following morning. The platform always works on the latest available data when you build audiences or run exports.
Troubleshooting
| Symptom | What to check |
|---|---|
| Audience sizes seem too large (many duplicates) | Identity resolution may not be running yet, or your data sources have few shared identifiers. Check Data Diagnosis. |
| Low match rates on Google Ads / Meta Ads exports | Your audience may have low email coverage. Check the Audience Preview — it shows how many users have an email identifier. |
| Users appear as separate profiles when they should be one | They may lack overlapping identifiers. Adding email or a common user ID to more data sources helps BPP stitch them together. |