Singular
Datafly Signal sends in-app events from the Datafly mobile SDKs to Singular’s S2S EVENT endpoint with Singular’s standard event names, the platform’s device identifiers, ATT status, revenue on purchases and hashed email and phone for Singular’s partner Conversion API forwarding.
Singular requires its V2 (SDID-based) endpoint for accounts created on or after 15 July 2026. Signal supports the V1 endpoint only (#1515).
Prerequisites
Find your SDK key
In Singular, open Developer Tools and copy the SDK key (not the Reporting API key).
Keep the Singular SDK for sessions
Singular attributes events to sessions: the Singular SDK (or Singular’s SESSION endpoint) must record the session before events arrive.
Send the device identifiers from the app
The Datafly iOS and Android SDKs send the advertising ID once the app passes it with setAdvertisingId, and the IDFV on iOS.
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
api_key | Yes | Your Singular SDK key. Sent as the ‘a’ parameter on every S2S request. Found in Settings > SDK Integration > SDK Keys in the Singular dashboard. |
app_id | Yes | Singular app long name (iOS bundle ID or Android package name). Sent as the required ‘i’ parameter on every S2S request. Required for app attribution. |
Management UI Setup
- Go to Integrations > Add Integration > Singular.
- Choose a preset: Default (
default), Retail (ecommerce), Media (media), Travel (travel), Insurance (insurance). - Fill in the fields above and click Save.
Request format
A purchase from an iOS app:
POST https://s2s.singular.net/api/v1/evt
a=sdkKey_abc&amt=259.99&att_authorization_status=3&cur=GBP&custom_user_id=crm-user-9&data_sharing_options=%7B%22limit_data_sharing%22%3Afalse%7D&e=%7B%22ehash%22%3A%2286e0b9e56c17cc4d12387e1949b85053fbe73bc3ce5a1188713a9d300cc6133d%22%2C%22eventId%22%3A%22evt-t3-1%22%2C%22phash%22%3A%2211072303eb5c8cb5c5a1ebb762f11b37b07131265b46fdfe1276196bfbd3ca51%22%2C%22sng_attr_coupon_code%22%3A%22SAVE10%22%2C%22sng_attr_transaction_id%22%3A%22ORD-1001%22%7D&i=com.example.shop&idfa=29DDE430-CE81-4F00-A50C-689595AAD142&idfv=59E27F41-A86B-4560-B585-63161F871C4B&ip=203.0.113.9&is_revenue_event=true&lc=en_GB&ma=Apple&mo=iPhone16%2C2&n=sng_ecommerce_purchase&p=iOS&ua=ShopApp%2F5.2+%28iPhone%3B+iOS+17.5.1%29&utime=1758500000&ve=17.5.1On Android the advertising ID goes to aifa; idfa, idfv and att_authorization_status are iOS only. e is a JSON string of event attributes.
Event Mapping
| Signal event | Vendor event | Presets |
|---|---|---|
sign_up | sng_complete_registration | Default, Retail, Media, Travel, Insurance |
login | sng_login | Default, Retail, Media, Travel, Insurance |
view_item | sng_content_view | Default, Retail, Travel |
add_to_cart | sng_add_to_cart | Default, Retail |
begin_checkout | sng_checkout_initiated | Default, Retail, Travel |
purchase | sng_ecommerce_purchase | Default, Retail, Media, Travel, Insurance |
subscription_started | sng_subscribe | Default, Media |
generate_lead | lead | Default, Insurance |
view_item_list | sng_content_view_list | Retail |
search | sng_search | Retail, Travel |
add_to_wishlist | sng_add_to_wishlist | Retail, Media, Travel |
view_cart | sng_view_cart | Retail |
add_payment_info | sng_add_payment_info | Retail, Travel |
content_viewed | sng_content_view | Media |
trial_started | sng_start_trial | Media |
booking_completed | sng_ecommerce_purchase | Travel |
quote_completed | quote_completed | Insurance |
Identity
Signal sends idfa and idfv (upper-cased) on iOS and aifa on Android, with p (iOS or Android). Events without a device identifier, and every web event, are not sent. custom_user_id is your user ID; Singular asks that it is not personal data. e carries ehash (SHA-256 of the normalised email) and phash (SHA-256 of the phone in E.164 without the plus). The Android App Set ID (asid) is not collected yet (#1515).
Consent
data_sharing_options carries limit_data_sharing from the visitor’s marketing consent (true when refused). att_authorization_status is 3 when the app reported tracking enabled, otherwise 0 (#1485).
Troubleshooting
| Problem | Solution |
|---|---|
| Requests rejected | Check the SDK key and the app ID (bundle ID or package name). |
| No events arrive | Check the app sends a device identifier: events without one are dropped. |
Blueprint
The Singular blueprint version is 0.6.0. It was last reviewed against the vendor’s documentation on 2026-09-23.