Singular S2S Attribution
Setup Guide
To set up Singular S2S Attribution as a destination, you'll need to provide:
-
SDK Key - Your Singular SDK Key, available in your Singular dashboard under Developer Tools > SDK Keys.
-
Event Endpoint Version (optional) - Choose between
v1(default) orv2. Usev2only when sending events with the Singular Device ID (sdid) as the sole device identifier.
Supported Platforms
The Singular S2S destination supports the following platforms:
- Android
- iOS
- PC
- Xbox
- Playstation
- Nintendo
- MetaQuest
- CTV
Event Types
Session Events
Send a session event by setting event_name to __SESSION__. Session events require:
app_v- Application versioninstall- Set totruefor the first session after install/reinstall
For iOS and Android platforms, you must also provide:
ma- Device manufacturermo- Device modellc- Locale (e.g.,en_US)bd- Device build
Custom Events
Send custom in-app events using any event name up to 32 ASCII characters.
Revenue Events
For revenue events, set is_revenue_event to true and provide:
amt- Revenue amountcur- ISO 4217 currency code (e.g.,USD)
Ad Revenue Events
Send ad revenue events by setting event_name to __ADMON_USER_LEVEL_REVENUE__. These events require:
amt- Ad impression amountcur- Currency codee- JSON object containingad_platform(e.g.,{"ad_platform": "admob"})
Device Identifiers
iOS
idfv- Required for v1 EVENT and SESSION requestsidfa- Optional, include when availableatt_authorization_status- Automatically set to0if not provided
Android
At least one Android device identifier is required:
aifa- Google Advertising IDasid- Google Play App Set ID (required wheninstall_sourceis Google Play oraifais present)amid- Amazon Advertising IDoaid- Open Advertising IDandi- Android IDsdid- Singular Device ID
PC, Xbox, Playstation, Nintendo, MetaQuest, CTV
sdid- Singular Device ID (required)
Event Endpoint v2
When using event_endpoint_version: v2, only sdid is accepted as a device identifier.
IP Address Handling
Each request requires either:
ip- The device's public IPv4 address, ORuse_ip: truewithcountry- Lets Singular use the request IP with the specified two-letter country code
Do not set both ip and use_ip: true.
Chronological Ordering
Records must be sent in chronological order based on the utime (and umilisec) timestamp. Extract will fail the sync if records are out of order.
Data Contract Information
Your source dataset must be compatible with Singular's S2S API parameter requirements, as outlined in Singular's S2S Integration documentation. If your data does not meet these requirements, the sync may fail.