Braze Attribution Integration

The integration between Singular and Braze enhances your marketing capabilities by incorporating mobile attribution data directly into your customer engagement platform. This seamless connection enables you to create more targeted and effective lifecycle marketing campaigns.

Important:

Ad Networks with data-sharing restrictions prevent postback transmission to third-party partners, overriding any configured postback settings. Please see more details here for media sources that have data-sharing restrictions with third parties.

Prerequisites

Requirement Description
iOS or Android app This integration supports iOS and Android apps. Depending on your platform, code snippets may be required in your application. Details on these requirements can be found in step 1 of the integration process.
Singular SDK and Braze SDK In addition to the required Braze SDK, you must install the Singular SDK

Integration

To complete the Braze integration you will need to update your Singular SDK integration and pass the Braze Device ID via Singular's Global Properties. See our SDK documentation regarding Global Properties (Android SDK documentation and iOS SDK documentation).

Step 1: Map user IDs

Android

If you have an Android app, you will need to include the following code snippet, which passes a unique Braze user ID to Singular.

KotlinJava
// Retrieve the Braze deviceId
val brazeDeviceID = Braze.getInstance(context).deviceId

// Set the Singular Global Property in the Singular Config
val config = SingularConfig("SDK KEY", "SDK SECRET")
   .withGlobalProperty("brazeDeviceID", brazeDeviceID, true)

iOS

Important:

Prior to February 2023, our Singular attribution integration used the IDFV as the primary identifier to match iOS attribution data. It is not necessary for Braze customers using Objective-C to fetch the Braze device_id and sent to Singular upon install as there will be no disruption of service.

For those using the Swift SDK v5.7.0+, if you wish to continue using IDFV as the mutual identifier, you must ensure that the useUUIDAsDeviceId field is set to false so there is no disruption of the integration.

If set to true, you must implement the iOS device ID mapping for Swift in order to pass the Braze device_id to Singular upon app install in order for Braze to appropriately match iOS attributions.

SwiftObjective-C
// Retrieve the Braze deviceId
let brazeDeviceId = AppDelegate.braze?.deviceId

// Set the Singular Global Property in the Singular Config
config.setGlobalProperty("brazeDeviceId", withValue: brazeDeviceId, overrideExisting: true)

Step 2: Get the Braze data import key

In Braze, navigate to Partner Integrations > Technology Partners and select Singular.

Note: If you are using the older navigation, you can find Technology Partners under Integrations.

Here, you will find the REST endpoint and generate your Braze data import key. After the key is generated, you can create a new key or invalidate an existing one.

You will need to provide the data import key and REST endpoint to your Singular account manager to complete the integration.

braze1.png


Step 3: Enable the Braze Postback

In Singular navigate to Attribution > Partner Configuration from the left menu.

  • Click the "Add Partner" button and search for "Braze".

    braze2.png

  • Select your App

  • Enter the Braze data import key received from the previous step

  • Select the Braze Domain name
    braze3.png

  • Click Save

Step 4: Confirm the integration

Once Braze receives attribution data from Singular, the status connection indicator on the Singular technology partners page in Braze will change from “Not Connected” to “Connected”. A timestamp of the last successful request will also be included.

Note that this will not happen until we receive data about an attributed install. Organic installs, which should be excluded from the Singular postback, are ignored by our API and are not counted when determining if a successful connection was established.