Skip to main content

Event Deduplication

Did you set up event deduplication with the conversion ID? Check out the event deduplication panel for details on deduplication effectiveness.

If you implement both the Reddit Pixel and Conversions API (CAPI) and the same events are shared across both sources, deduplication is necessary to prevent double-counting. Deduplication occurs every hour. When duplicates are detected, the event(s) with less event metadata and match keys be marked as a duplicate(s). If all events are of equal quality, the earliest event(s) will be preferred.

Reddit supports two methods: conversion ID and session-based deduplication. For deduplication to occur, events must match one of these methods and be of the same event type. For custom events, the event name must also match. Events that meet these conditions will be evaluated for deduplication. A log of deduplicated events is available for up to seven days.

Events must be sent within two days for proper deduplication.

If you share different conversion events for the Reddit Pixel and Conversions API, you don’t have to worry about deduplication.

This method is always preferred when a conversion ID is provided.

View your deduplication details in the deduplication panel.

You can pass a unique conversion ID through the Pixel and CAPI for every distinct conversion event. When this method is chosen, the event with the lower quality will be marked as a duplicate. If equal, the later event will be considered a duplicate.

This method is the most accurate way to ensure proper deduplication and minimize the risk of integration errors and attribution inaccuracies. 

To ensure your events are deduplicated:

  • Create a unique conversion ID for every distinct conversion event. You can set this as a random number or ID. Similarly, you could set this to the order number when tracking purchase events. Learn more about generating unique conversion IDs.
  • Include the event in the Reddit Pixel and CAPI. 
  • Ensure the conversion ID for its corresponding events matches.

    If the conversion ID is improperly passed to too many multiple events, those events will be marked as duplicates and will not be attributed, impacting campaign performance.

Session-based deduplication (default)

This method isn’t used when a conversion ID is provided, and it won’t mark events as duplicates if they’re sent only from the Pixel or only from CAPI.

This deduplication method determines which source—the Pixel or CAPI—is providing higher-quality events within a session. A session is a series of events from a single user where no more than five minutes pass between two consecutive events.

To enable deduplication, include either a UUID or external ID on all Pixel and CAPI events. We recommend choosing UUID since it’s automatically passed with Pixel events.

When this deduplication method is used, an integration type–CAPI or the Pixel–is selected for each session based on the number of attributable events, or the source that sent the earliest event if both are equal.

The events from the selected source will be used for attribution. The other events will be filtered out to keep your reporting accurate. 

Generate unique conversion IDs

We recommend generating the conversion ID based on attributes unique to each event. For example, you could set it as the hash of the timestamp, event type, metadata parameters, and user parameters. This way, there will be a unique conversion ID for each unique event, removing the risk of mistakenly deduplicating them.

Generate conversion IDs (JavaScript)
const crypto = require('crypto');
function generateConversionID(event_at, tracking_type, metadata_value, ip_address) {
// Concatenate the input values
const inputString = `${event_at}${tracking_type}${metadata_value}${ip_address}`;
// Create a SHA-256 hash of the concatenated string
const hash = crypto.createHash('sha256');
hash.update(inputString);
// Return the hash in hexadecimal format
return hash.digest('hex');
}

// Example usage
const event_at = '2024-09-04T12:34:56Z';
const tracking_type = 'Purchase';
const metadata_value = '100.00';
const ip_address = '192.168.1.1';
const conversionID = generateConversionID(event_at, tracking_type, metadata_value, ip_address);
console.log('Generated Conversion ID:', conversionID);

Things to know

  • Events must be sent within two days to ensure proper deduplication.
  • When deduplicating using conversion ID, the event with more event metadata and match keys is preferred.
  • Deduplication isn’t necessary when sharing different events with the Reddit Pixel and CAPI.
  • If a conversion ID is used for both integration types, that method will be preferred. Otherwise, session-based deduplication will apply.

We're here to help

Our Reddit Ads team is ready to support you from setup to success.

Snoo Punch Up