- Overview
How Signals works
Every signal follows the same shape regardless of where it starts. Data arrives from a source, identifiers are normalized and hashed, the event is mapped to what the destination expects, and it is delivered.
Collection
Section titled “Collection”How data arrives depends on the source.
| Source class | How data arrives |
|---|---|
| Website and e-commerce | A tag on your site. Either NeoTag, one tag that serves multiple platforms, or dhPixel, which replaces a single platform’s base pixel. See Website tag setup. |
| App | Your app posts events to the address issued to you, or existing Firebase events are forwarded through Google Tag Manager. |
| CRM, file, database, warehouse | Signals pulls your data frequently on a schedule, so changes reach your destinations without you doing anything. |
| Lead generation | Lead form submissions pulled frequently from the ad platform. |
| API | You push events to the Datahash API as they occur. |
| Messaging ads | Conversations on a connected Facebook Page, through the Click to WhatsApp, Click to Messenger and Click to Instagram Ads sources. |
Normalization and hashing
Section titled “Normalization and hashing”Identifiers are normalized to a consistent shape and then hashed with SHA-256. Normalization matters more than it sounds. A hash only matches if both sides formatted the value identically before hashing, so Person@Example.com and person@example.com produce completely different hashes and only one of them will match.
Hash personal data at source wherever you can. On website and app sources this happens for you in the browser or in the app, so the raw value never leaves the device. On batch sources, send values already hashed if your systems can do it. Where they cannot, Signals normalizes and hashes on the way through, in memory, and the raw value is never written to disk.
See Identifier normalization & hashing for the per field rules, and Apply SHA-256 hashing to PII for how to hash at source.
Mapping
Section titled “Mapping”On Field Mapping you tell Signals which column or field in your data corresponds to each field the destination expects. Studio filters the dropdown to columns whose data type is eligible, so you cannot map a date into a currency field.
Delivery
Section titled “Delivery”Signals transforms the mapped event into the shape each destination’s conversion API expects and delivers it. One source event fans out to every destination you have connected for that use case, and each delivery counts as its own signal.
Fields a destination does not accept are dropped during that transformation rather than causing the event to fail.
What happens to a bad event
Section titled “What happens to a bad event”An event that fails validation is dropped. The rest of the batch is processed and delivered normally, so one malformed row does not cost you the whole upload.
Because a dropped event does not produce an error you will see, the practical consequence is that your numbers are quietly lower than they should be. Event validation & schema covers what makes an event valid, and Data quality covers how to spot the gap.
Where to go next
Section titled “Where to go next”- Connecting sources & destinations for the setup flow.
- Identifier normalization & hashing for the per field rules.
- Deduplication for keeping browser and server copies of the same event from double counting.

