Skip to main content

Signal Export

A Signal Export pushes conversion event data from your data warehouse to an ad platform for offline conversion attribution, enhanced measurement, and value-based bidding.

How it works​

  1. BPP reads your event table and applies the signal's trigger filters (e.g., rows where Stage = Closed Won).
  2. For each qualifying event, BPP:
    • Looks up the user identifiers (email, phone, click IDs) configured for the destination.
    • Computes the conversion value using your formula.
    • Builds the platform-specific payload, normalising identifiers and hashing at send time if required by the destination.
  3. BPP sends the events to the destination platform in batches.
  4. The sync result (events processed, events failed, latest event date, timestamp) is saved to Sync History.

What gets sent​

DestinationData sent
Google Ads Enhanced ConversionsConversion action, event timestamp, Order ID (optional), value, hashed identifiers
Google Ads Conversion AdjustmentConversion action, Order ID, restated value
Google Ads Store SalesConversion action, event timestamp, value, hashed identifiers (on the Data Manager API also Order ID and Store ID)
Google Ads Online Conversions (multi-source)Website conversion action, event timestamp, transaction ID, value, hashed identifiers and click IDs, optional session attributes, consent and IP addresses
Meta Ads Conversions APIPixel, event name (Meta's standard name for predefined events), value, currency, hashed identifiers, and optionally a predicted LTV (only when configured and greater than 0) — see Meta Ads
Google Analytics 4Measurement ID, event name, value, currency, client_id/user_id identity
OpenAI Ads Conversions APIPixel, event type, timestamp, action source, value, currency, hashed and raw identifiers
API EndpointCustom metric fields with your formula-computed values, plus user identifiers

How old an event can be​

Each platform accepts conversions only up to a certain age. BPP reads and sends only the events inside that window, and the signal preview count applies the same window:

DestinationOldest event sent
Google Ads Enhanced Conversions for Leads90 days
Microsoft Ads90 days
Meta Ads, OpenAI Ads7 days
Google Analytics 472 hours
Google Ads adjustments and store sales, API endpointsNo limit

The destination form says so for each platform, for example Meta Ads only accepts events from the last 7 days: older events are not sent to this destination. A new destination therefore does not backfill events older than its window.

Incremental syncs — no duplicate sends​

Signal exports track the latest event date processed. On each run, BPP only picks up events newer than the last successful push. This prevents the same conversion event from being sent to the ad platform twice.

Each destination independently tracks its own high-water mark, so if one destination is paused or fails, the others continue independently.

Order ID deduplication​

For Google Ads Enhanced Conversions, you can send an Order ID with each event. If your site pixel and BPP both send the same conversion event with the same Order ID, Google Ads will count it only once. This prevents double-counting in your conversion reporting.

Using Order ID is strongly recommended when your site pixel and BPP might both send the same lead or purchase event.

Scheduling​

Signal syncs run daily by default. The signal must be in Ready status (enabled) for runs to execute.

Partial syncs​

If some events fail to push (e.g., a missing required identifier or a platform rejection), the events that were successfully sent are still counted — a partial failure does not cancel the whole sync. The destination still shows Complete; when a significant share of its events was rejected, the status carries a warning icon and its tooltip explains the rejections. See Execution History.