Back to DocsServer-Side Tracking

Deduplication & Match Quality

How DealOracle prevents duplicate events and maximizes ad platform match rates.

Table of contents

Deduplication

Duplicate conversion events inflate your numbers and confuse ad platform optimization. DealOracle prevents duplicates at multiple levels:

DealOracle-Side Deduplication

DealOracle tracks which events have been sent to which platforms for every lead:

  • First disposition fires — When a lead's disposition is set, DealOracle sends the conversion event to all mapped platforms
  • Subsequent changes are blocked — If the same disposition is set again (e.g., accidentally clicking "Sold" twice), DealOracle recognizes it's already been sent and skips the duplicate
  • Re-send option — If you need to explicitly re-fire an event (e.g., after fixing a credential issue), you can force a re-send from the lead's Event Stream

Platform-Side Deduplication

DealOracle also sends an event ID with every conversion event. This allows the ad platform to perform its own deduplication:

{
  "event_id": "lead_abc123_sold_1709856000",
  "event_name": "Purchase"
}

If the same event ID arrives twice (e.g., due to a network retry), the platform ignores the duplicate.

Pixel + Server-Side Deduplication

If you're running browser pixels alongside DealOracle's server-side tracking:

  • Both the pixel and server-side event should include the same event ID
  • The platform deduplicates automatically, counting the conversion only once
  • DealOracle supports passing event IDs through to align with your pixel implementation

Match Quality

Match quality measures how well the ad platform can connect your conversion event back to the original ad click. Higher match quality = better attribution = better optimization.

What DealOracle Sends

DealOracle maximizes match quality by sending multiple data points with each event, all properly hashed:

Data PointFormatHashingImpact on Match Quality
EmailLowercase, trimmedSHA-256High — primary matching field
PhoneE.164 formatSHA-256High — strong secondary match
First NameLowercaseSHA-256Medium — supplementary
Last NameLowercaseSHA-256Medium — supplementary
IP AddressRaw (when available)Not hashedMedium — helps with session matching
User AgentRaw (when available)Not hashedLow — supplementary
Click IDsfbclid, gclid, etc.Not hashedVery High — direct attribution

Match Quality Tiers

Ad platforms typically report match quality in tiers:

TierWhat It Means
ExcellentClick ID match — direct attribution to ad click
GoodEmail + phone match — strong user identification
FairEmail only or phone only — single identifier match
PoorName + IP only — weak match, may not attribute

DealOracle aims for Good or Excellent on every event.

Improving Match Rates

Here are practical steps to maximize your match quality:

Capture Click IDs

Click IDs are the single most impactful factor for match quality:

  • Facebook: fbclid — Passed as a URL parameter when users click your ad
  • Google: gclid — Auto-appended by Google Ads
  • TikTok: ttclid — Passed by TikTok Ads

How to capture them:

  1. Ensure your landing page preserves UTM and click ID parameters
  2. Pass click IDs to DealOracle via the webhook meta field:
{
  "name": "Jane Smith",
  "email": "[email protected]",
  "meta": {
    "fbclid": "AbC123...",
    "gclid": "Xyz789..."
  }
}

Collect Both Email AND Phone

  • Having both email and phone dramatically improves match rates
  • Email alone: ~60-70% match rate
  • Email + phone: ~85-95% match rate
  • Make phone a required field on your lead forms when possible

Use Consistent Formatting

  • Email: DealOracle normalizes to lowercase automatically
  • Phone: Use E.164 format (+15551234567). DealOracle handles formatting.
  • Names: Captured as-is; DealOracle normalizes before hashing

Pass IP Address When Available

  • If your webhook source has the user's IP address, include it
  • Helps with session matching, especially when click IDs aren't available
  • Include as ip in the meta field

Match Rate Dashboard

Monitor your match rates in real time from the Oracle Analytics dashboard:

Accessing the Dashboard

  1. Navigate to Oracle → Analytics
  2. Select the Match Quality tab
  3. View match rates broken down by platform

What You'll See

MetricDescription
Overall Match RatePercentage of events successfully matched by each platform
Match Quality DistributionBreakdown of Excellent / Good / Fair / Poor matches
Trend Over TimeWeekly match rate trend to spot improvements or degradation
Per-Platform BreakdownIndividual match rates for Facebook, Google, TikTok, etc.
Missing Data AlertsWarnings when leads are missing key fields (email, phone, click IDs)

Industry Benchmarks

MetricIndustry AverageDealOracle Users
Overall Match Rate60-70%80-95%
Click ID Capture30-50%60-80%
Email + Phone Coverage40-60%70-90%

Improving Your Numbers

If your match rates are below target:

  1. Check the Missing Data Alerts for common gaps
  2. Review your lead capture forms — are you collecting phone numbers?
  3. Verify click ID pass-through from your landing pages
  4. Ensure webhook payloads include the meta field with click IDs
#data-quality#deduplication#match-quality#sst