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

FieldRequiredDescription
api_keyYesYour Singular SDK key. Sent as the ‘a’ parameter on every S2S request. Found in Settings > SDK Integration > SDK Keys in the Singular dashboard.
app_idYesSingular 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

  1. Go to Integrations > Add Integration > Singular.
  2. Choose a preset: Default (default), Retail (ecommerce), Media (media), Travel (travel), Insurance (insurance).
  3. 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.1

On 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 eventVendor eventPresets
sign_upsng_complete_registrationDefault, Retail, Media, Travel, Insurance
loginsng_loginDefault, Retail, Media, Travel, Insurance
view_itemsng_content_viewDefault, Retail, Travel
add_to_cartsng_add_to_cartDefault, Retail
begin_checkoutsng_checkout_initiatedDefault, Retail, Travel
purchasesng_ecommerce_purchaseDefault, Retail, Media, Travel, Insurance
subscription_startedsng_subscribeDefault, Media
generate_leadleadDefault, Insurance
view_item_listsng_content_view_listRetail
searchsng_searchRetail, Travel
add_to_wishlistsng_add_to_wishlistRetail, Media, Travel
view_cartsng_view_cartRetail
add_payment_infosng_add_payment_infoRetail, Travel
content_viewedsng_content_viewMedia
trial_startedsng_start_trialMedia
booking_completedsng_ecommerce_purchaseTravel
quote_completedquote_completedInsurance

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).

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

ProblemSolution
Requests rejectedCheck the SDK key and the app ID (bundle ID or package name).
No events arriveCheck 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.

See also