RudderStack supports two types of track events that you can send to Singular via cloud mode:
Session events
Custom events
Session events
RudderStack lets you specify the event names to be used as session events in the dashboard settings:
RudderStack sends the session events to Singular via its launch API.
RudderStack considers an event as a session event only if it is specified in the dashboard settings or if it one of the following three lifecycle events:
Application Installed
Application Opened
Application Updated
RudderStack automatically tracks the above three lifecycle events if lifecycle event tracking is enabled.
Supported mappings
This section lists the mappings of the RudderStack event properties to the relevant Singular fields.
The following table lists the mapping of the attributes automatically captured by RudderStack for the mobile platforms (Android and iOS):
RudderStack property
Singular attribute
Description
context.os.name Required
p
The source platform (Android or iOS).
context.app.namespace Required
i
The package name (Android) or bundle ID (iOS) of your app.
context.app.version Required
app_v
The app version.
context.ip request_ip (in that order) Required
ip
The user’s IP address. Refer to the note below for information on anonymizing your IP.
context.os.version Required
ve
The device OS version at session time.
context.device.model Required
mo
The device model. This parameter must be used with the ma parameter.
context.device.manufacturer Required
ma
The make of the device hardware. This parameter must be used with the mo parameter.
context.locale Required
lc
The device’s IETF local tag using two-lettered language and country code, separated by an underscore.
context.device.id Required
idfv
The raw IdentifierForVendor in upper case with dashes. This is applicable for iOS apps only.
context.device.id Required, if context.device.advertisingId and properties.asid is absent.
andi
The raw Android ID in lower case. This is applicable for Android apps only and is required only when the Android advertising ID is unavailable on the device. See FAQ for more information.
context.app.build Required
bd
The device build (URL encoded).
context.device.adTrackingEnabled Required
dnt
Pass true if do not track(dnt) is disabled (dnt=0), else pass false(dnt=1). This is automatically captured if you pass the advertising ID to the SDK.
context.app.name
n
The human-readable app name as displayed in the UI.
utime
Optional
context.network.wifi
c
The connection type (WiFi or carrier).
context.network.carrier
cn
The carrier name of the internet provider.
To anonymize your IP, you can send a placeholder IP in the context.ip field. RudderStack uses it as the IP address instead of capturing it automatically from the backend. In case of mobile SDKs, you can leverage the Transformations feature to do this - when sending events via cloud mode.
The following table lists the mapping of the attributes that must be passed via the event properties:
These properties are not persisted in the SDK and must be passed with every event.
Used to attribute Apple Search Ads for iOS 14.3 and above. More information here.
properties.skan_conversion_value
skan_conversion_value
The latest SkAdNetwork value at the time of the session notification.
properties.skan_first_call_timestamp
skan_first_call_timestamp
UNIX timestamp of the first call made to the SkAdNetwork API.
properties.skan_last_call_timestamp
skan_last_call_timestamp
UNIX timestamp of the last call made to the SkAdNetwork API at the time of the session notification.
properties.install
install
The install flag. Set to true on the first session after app install, or false otherwise. Required for reinstall tracking capability.
The following table lists the mapping of the attributes that must be passed via the event properties just once:
These properties are persisted in the SDK and must be passed just once.
RudderStack property
Singular attribute
Description
context.device.advertisingId Required
idfa
The raw advertising ID in upper case with dashes. This is applicable for iOS apps only.
context.device.advertisingId Required, if properties.asid and context.device.id is absent.
aifa
This is the lower case raw advertising ID with dashes. This is applicable for Android apps only. See FAQ for more information.
context.device.token
fcm
The Firebase Cloud Messaging Device Token. It is required for uninstall tracking in Android.
context.device.token
apns_token
The Apple Push Notification Service Device Token. It is required for uninstall tracking in iOS.
For more information on setting the device token, refer to the Android or iOS SDK documentation.
RudderStack supports only fcm for mapping the device token.
Custom events
RudderStack sends all events other than the session events as custom events via Singular’s evt endpoint.
Supported mappings
The following table lists the mapping of the attributes automatically captured by RudderStack for the mobile platforms (Android and iOS):
RudderStack property
Singular attribute
Description
context.os.name Required
p
The source platform (Android or iOS).
context.app.namespace Required
i
The package name (Android) or bundle ID (iOS) of your app.
context.ip request_ip (in same order) Required
ip
The user’s IP address.
context.device.advertisingId Required
idfa
The raw IdentifierForVendor in upper case with dashes. This is applicable for iOS apps only.
context.device.advertisingId Required, if properties.asid and context.device.id are absent.
aifa
This is the lower case raw advertising ID with dashes. This is applicable for Android apps only. See FAQ for more information.
context.device.id Required
idfv
The raw IdentifierForVendor in upper case with dashes. This is applicable for iOS apps only.
context.device.id Required, if context.device.advertisingId and properties.asid are absent.
andi
The raw Android ID in lower case. This is applicable for Android apps only and is required only when the Android Advertising ID is unavailable on the device. See FAQ for more information.
context.os.version Required
ve
The device OS version at session time.
utime
Optional
Singular prefers aifa over andi (in Android) and idfa over idfv (in iOS).
The following table lists the mapping of the attributes that must be passed via the event properties:
The ISO 4217 three-lettered currency code. This should be in conjunction with the amt parameter.
properties.purchase_receipt
purchase_receipt
The receipt received from a purchase.
properties.product_id properties.sku
purchase_product_id
The product SKU identifier.
properties.orderId properties.purchase_transaction_id (in that order)
purchase_transaction_id
The transaction identifier.
If you set any one out of the value, revenue, or total properties, RudderStack automatically considers the event as a revenue event, unless it is explicitly mentioned by the is_revenue_event property.
A few important considerations in case of custom events are listed below:
RudderStack takes the user agent from context.userAgent for Android and from the event properties in case of iOS.
RudderStack stores the extra attributes passed in the custom event in Singular’s e field.
FAQ
How can I verify if the events are successfully delivered to Singular?
To verify if the events are successfully delivered to Singular, you can use RudderStack’s Destination live events feature.
You can also verify the event delivery by going to your Singular dashboard and following these steps:
Go to Settings > Console. You should see a list of tracked devices:
To add a new device, click the Add Device option and choose the relevant settings:
Finally, click the eye icon associated with the tracked device to start seeing the events in real-time.
You should be able to see a real-time log of all events sent to Singular:
For more customizable and granular reports, you can go to Attribution > Export Logs in the Singular dashboard. Note that this report is not real-time and takes some time to generate.
Which device ID attributes are required for Android?
For Android requests, Singular requires either of the following attributes in the mentioned order of preference:
aifa
asid
andi
If none of them are available, you must send at least one with the empty value (instead of null or undefined). If you send all of them, RudderStack discards the andi attribute as per Google’s data policies.
This site uses cookies to improve your experience while you navigate through the website. Out of
these
cookies, the cookies that are categorized as necessary are stored on your browser as they are as
essential
for the working of basic functionalities of the website. We also use third-party cookies that
help
us
analyze and understand how you use this website. These cookies will be stored in your browser
only
with
your
consent. You also have the option to opt-out of these cookies. But opting out of some of these
cookies
may
have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This
category only includes cookies that ensures basic functionalities and security
features of the website. These cookies do not store any personal information.
This site uses cookies to improve your experience. If you want to
learn more about cookies and why we use them, visit our cookie
policy. We'll assume you're ok with this, but you can opt-out if you wish Cookie Settings.