Singular Destination

Singular is a Marketing Intelligence Platform that transforms marketing data into accurate, granular and actionable insights to drive growth. By unifying marketing campaign data with attribution data, marketers can measure ROI from every touchpoint across multiple channels for a single source of truth.

This destination is maintained by Singular. For any issues with the destination, please reach out to Singular Support.

Getting Started

The first step is to make sure Singular supports the source type and connection mode you’ve chosen to implement. You can learn more about what dictates the connection modes we support here.

📱 Device-mode
☁️ Cloud-mode
  1. From your Segment UI’s Destinations page click on “Add Destination”.
  2. Search for “Singular” within the Destinations Catalog and confirm the Source you’d like to connect to.
  3. Add your Singular “API KEY”, found in your Singular Dashboard under ‘Settings’ > ‘SDK Keys’, to the Segment Settings UI.

What’s supported

  1. Install Attribution
  2. Apple Search Ads Attribution
  3. Custom Event Tracking
  4. Revenue tracking
  5. Custom User ID

Install Attribution

Enable automatic tracking of lifecycle events (Application Opened, Application Installed, Application Updated) via initialization config parameters (iOS, Android) to track installs and sessions in Singular. The Singular “session“ will be sent automatically by the integration as long as you are including the events above.

Apple Search Ads Attribution

To get iAD attribution data into Singular, you must include the analytics-ios-iads-attribution dependency and version 3.6.0 or higher of the Analytics SDK.

To install it, simply add the following line to your Podfile: pod "Analytics" pod "Analytics-iAds-Attribution"

Then import the header and initialize the configuration:

#import <Analytics-iAds-Attribution/SEGADTracker.h>

// Initialize the configuration as you would normally.
SEGAnalyticsConfiguration *configuration = [SEGAnalyticsConfiguration configurationWithWriteKey:@"YOUR_WRITE_KEY"];

// Configure the client with the iAD middleware to attach iAd properties.
configuration.middlewares = @[ [SEGADTracker middleware] ];

[SEGAnalytics setupWithConfiguration:configuration];

When iAd information is available, the attribution information is transformed to Segment context this way:

[analytics track:@"Application Installed",
    properties: nil,
    options: @{
      @"context" : @{
        @"campaign" : @{
          @"provider" : @"Apple",
          @"click_date" : attributionInfo[@"iad-click-date"],
          @"conversion_date" : attributionInfo[@"iad-conversion-date"],
          @"source" : @"iAd",
          @"name" : attributionInfo[@"iad-campaign-name"],
          @"content" : attributionInfo[@"iad-keyword"],
          @"ad_creative" : attributionInfo[@"iad-org-name"],
          @"ad_group" : attributionInfo[@"iad-adgroup-name"],
          @"id" : attributionInfo[@"iad-campaign-id"],
          @"ad_group_id" : attributionInfo[@"iad-adgroup-id"]

Singular has explicitly mapped the Application Installed lifecycle event to provide the iAd Information.

Tracking Custom Events

If you haven’t had a chance to review our spec, please take a look to understand what the Track method does. An example call (in Android) would look like:


Those calls will be sent to Singular and processed as custom post-install events and will be available in reporting & user-level exports.

Revenue Tracking

Singular will receive revenue tracking when an event containing the revenue property is sent (including zero value). You can optionally pass the currency (as an iso3 code). The default currency is USD.

For example in Android you would do:

Analytics.with(context).track("Order Completed", new Properties().putRevenue(1.99));

Custom User ID

Singular has mapped the Custom User ID to the Segment User ID value. Follow the steps here to configure for: iOS, Android.


You can send computed traits and audiences generated through Segment Personas to this destination as a user property. To learn more about Personas, reach out for a demo.

For user-property destinations, an identify call will be sent to the destination for each user being added and removed. The property name will be the snake_cased version of the audience name you provide with a true/false value. For example, when a user first completes an order in the last 30 days, we will send an identify call with the property order_completed_last_30days: true, and when this user no longer satisfies we will set that value to false.

When the audience is first created an identify call is sent for every user in the audience. Subsequent syncs will only send updates for those users which were added or removed since the last sync.

Segment offers an optional Device-mode for Mobile data with Singular. If you’d like to use features that require client-based functionality, follow the steps above to package the Singular SDK with Segment’s.


Segment lets you change these destination settings via your Segment dashboard without having to touch any code.


You can find your API Key under Settings -> SDK Keys

Adding Singular to the integrations object

To add Singular to the integrations JSON object (for example, to filter data from a specific source), use one of the 1 valid names for this integration:
  • Singular

  • Questions? Need help? Contact us!
    Can we improve this doc?
    Email us:!