Skip to main content
This page explains every stage between a Datalyr event and an accepted ad-platform conversion.

The five stages

A failure at any stage leaves the earlier stages intact, which is why the two screens can disagree. Events can hold an event Conversions never shows. Conversions can hold a row the ad platform rejected.

What a rule holds

The editor has two steps. Step 1 sets the trigger and the destination. Step 2 sets the mapping.

How the value resolves

Datalyr tries each source in order and stops at the first number it finds.
  1. The rule’s value_path, read against the event.
  2. The rule’s value_static.
  3. The event’s own value, revenue, total, or amount.
  4. Zero.
A parameter_mappings entry that targets value overrides all four.
Meta, TikTok, and Snapchat reject a purchase worth zero. We skip that delivery with the reason zero_value_purchase rather than send a request that always fails.

How identity resolves

We look for a click ID on the event itself first. If there isn’t one, we search history. Datalyr also fills hashed match keys from the stored user profile and from the event’s geo_city, geo_region, and geo_country_code. An event carrying consent.marketing: false, consent.sale: false, or consent.ad_user_data: false ships with no user-level identifier at all.

Deduplication

Every platform receives the browser-minted event_id as its dedup key. The browser pixel fires with the same value, so the pair collapses into one conversion. Datalyr also takes a 300-second Redis claim per event and rule. A queue redelivery inside that window is skipped instead of resent.
Do not enable two rules for the same trigger event and the same destination asset. Each rule delivers separately with a different rule ID, and the ad platform counts the conversion twice.

Statuses

Skip reasons

Retries

The dead-letter queue runs three rounds. After that the row reads dropped. Google conversions never enter the queue, because Google validates the upload later through its own diagnostics poll. Two circuit breakers protect a broken setup. Five straight 5xx responses pause one workspace and platform for 60 seconds. Ten auth or config failures pause one rule for one hour.

Verify

  1. Open Conversions. Select manage rules. Open your rule.
  2. Select send test event.
  3. Read the rule’s matched, sent, and failed counts.
  4. Open the newest row under recent activity.
  5. Confirm the response body carries the ad platform’s own acceptance field.

When it does not work

Next

  • Conversions: read one delivery row end to end.
  • Meta Ads: the exact fields and hashing per platform.
  • Attribution: how a click ID reaches a server-side purchase.