Branded Domains lets you replace the standard company.sng.link tracking link domain with your own domain or subdomain — for example, link.yourbrand.com. The result is a fully branded, trusted link experience with no loss of Singular attribution power.
Looking for vanity links? If you want short, human-readable paths on a branded domain — for example, go.yourbrand.com/summer-sale — see Vanity Links: Custom Short Link Domains for Singular Tracking Links.
Why Use a Branded Domain?
- Strengthen your brand: Keep every touchpoint fully on-brand, from ad click to app open.
- Boost user trust: Branded domains increase credibility and click-through rates.
- Increase engagement: Clean, recognizable URLs perform better in social, email, and SMS campaigns.
- Maintain full analytics: You get the same Singular attribution data — just with your brand in the URL.
Domain Requirements
- Must be a subdomain of a domain you own (e.g.,
link.mybrand.com). Root domains (e.g.,mybrand.com) are not supported. - Must be a domain you can update DNS records for.
- The subdomain must not already be in use (e.g., pointing to another service).
- Special characters (such as
-,$,!) are not supported in the subdomain label. - Multi-level subdomains like
x.y.mybrand.comare supported.
CAA DNS Records: If your domain has a CAA (Certification Authority Authorization) DNS record, make sure it includes amazon.com as an allowed CA. Singular uses AWS Certificate Manager to provision SSL certificates for your branded domain. If amazon.com is missing from the CAA record, certificate provisioning will fail and the domain will not become Active.
Example of a correct CAA record value: 0 issue "amazon.com"
Step 1: Create and Configure Your Domain
Manage your branded domains in the Singular platform under Attribution > Manage Links > Manage Domains.
-
Create the Domain: Click Create Links Domain. Select Branded as the domain type and enter your desired subdomain (e.g.,
link.mybrand.com). Click Save. -
Configure DNS: After saving, the domain status shows as Pending DNS Configuration. Click the dropdown to reveal your CNAME records.
Provide the following values to your IT team to add to your DNS settings:DNS Record Type Host / Name Target / Value CNAME (shown in Singular dashboard — specific to your domain) (shown in Singular dashboard) Note: DNS propagation can take up to 24–48 hours. Do not click Validate until your IT team confirms the records are in place.
- Validate: Once DNS is updated, click Validate in the Singular dashboard. Singular will verify the CNAME and begin Creating Certificate automatically via AWS ACM. This SSL provisioning step can take additional time.
Domain Status Lifecycle
| Status | Meaning |
|---|---|
| Pending DNS Configuration | CNAME records have been generated. Waiting for your IT team to add them to DNS. |
| Pending Validation | DNS records have been added. Click Validate to trigger verification. |
| Creating Certificate | DNS validated. Singular is provisioning the SSL certificate (automated, may take some time). |
| ● Active | Setup complete. Your branded domain is live and can be selected when creating tracking links. |
| Error | An issue occurred. Contact your Customer Success Manager or Singular Support. |
Step 2: Update Your App Integration
To ensure proper deep linking and attribution with your branded domain, you must update your app and SDK configuration. This tells the app to recognize your custom domain when a link is opened.
1. Update App Capabilities
iOS — Add the domain to Associated Domains:
In Xcode, go to Project Settings > Signing & Capabilities > Associated Domains and add your branded domain:
applinks:link.mybrand.com
Android — Add an intent filter to AndroidManifest.xml:
Add a new <intent-filter> block for your branded domain alongside your existing sng.link entry:
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="link.mybrand.com" />
<data android:host="example.sng.link" />
<data android:pathPrefix="/A" />
<data android:pathPrefix="/B" />
<data android:pathPrefix="/E" />
<data android:pathPrefix="/F" />
</intent-filter>
Keep your existing sng.link domain in the intent filter as well. Removing it may break existing tracking links that use the standard domain.
2. Update SDK Initialization
Register your branded domain in the SingularConfig object before initializing the SDK. This enables the SDK to handle deep links and deferred deep links arriving from your branded domain.
// Kotlin
val config = SingularConfig(apiKey, secretKey)
.withBrandedDomains(listOf("link.mybrand.com"))
Singular.init(context, config)
// Java
SingularConfig config = new SingularConfig(apiKey, secretKey)
.withBrandedDomains(Arrays.asList("link.mybrand.com"));
Singular.init(context, config);
// Swift
let config = SingularConfig(apiKey: apiKey, andSecret: secretKey)
config?.brandedDomains = ["link.mybrand.com"]
Singular.start(config)
// Objective-C
SingularConfig *config = [[SingularConfig alloc] initWithApiKey:apiKey andSecret:secretKey];
config.brandedDomains = @[@"link.mybrand.com"];
[Singular start:config];
SingularConfig config = new SingularConfig(apiKey, secretKey);
config.BrandedDomains = new List<string> { "link.mybrand.com" };
SingularSDK.InitializeSingular(config);
const config = new SingularConfig(apiKey, secretKey);
config.withBrandedDomains(["link.mybrand.com"]);
Singular.init(config);
final config = SingularConfig(apiKey, secretKey);
config.brandedDomains = ["link.mybrand.com"];
Singular.init(config);
const config = new SingularConfig(apiKey, secretKey);
config.brandedDomains = ["link.mybrand.com"];
singular.init(config);
Multiple branded domains: If you have more than one branded domain (e.g., one per region), you can pass multiple values in the array: ["link.mybrand.com", "go.mybrand.de"].
Step 3: Go Live
Once the domain status changes to ● Active, your branded domain is ready. It will appear as a selectable option in the Link Management domain dropdown when you create new tracking links.
All new links created with the branded domain will use the structure:
https://link.mybrand.com/[APP_ID]/[LINK_ID]?[PARAMETERS]
Existing links are not migrated automatically. Links previously created with your sng.link subdomain continue to work and are not changed. Only newly created links will use the branded domain.
Troubleshooting
- Confirm your IT team added the CNAME record exactly as shown in the Singular dashboard (Host/Name and Target values).
- Allow up to 48 hours for DNS propagation before retrying validation.
- Use a tool like MXToolbox to verify the CNAME is resolving correctly.
- If your domain has a CAA record, make sure it includes
amazon.com. Missing this entry will block SSL certificate creation.
SSL certificate provisioning is automated and usually completes within a few hours. If the status has not changed after 24 hours:
- Check if your domain has a CAA DNS record that excludes
amazon.com. This is the most common cause of prolonged certificate creation failure. - Contact Singular Support or your Customer Success Manager for manual investigation.
-
iOS: Make sure
applinks:link.mybrand.comis listed under Associated Domains in Xcode. Without this, iOS Universal Links will not work for your branded domain. -
Android: Confirm the intent filter in
AndroidManifest.xmlincludes your branded domain host and that your app's SHA256 fingerprint is configured in Singular's App Settings. - Ensure
brandedDomainsis set in yourSingularConfigbeforeSingular.init()is called. - See the full deep link troubleshooting guide: My deep link doesn't open my app.
Refresh the Manage Links page. If the domain still doesn't appear, check that:
- The domain status is Active (not "Creating Certificate" or "Error").
- You are logged into the correct Singular account/organization.
- Contact Singular Support if the issue persists.
Frequently Asked Questions
No. Root domains (e.g., mybrand.com) are not supported. You must use a subdomain (e.g., link.mybrand.com or go.mybrand.com).
Yes. You can configure multiple branded domains — for example, one per region or product line. Each domain goes through the same DNS and validation process. Register all active branded domains in your SDK config's brandedDomains array.
No. Adding a branded domain does not affect existing links. All previously created links using your sng.link subdomain will continue to work normally. Only new links you create after the branded domain is Active will use it (when selected).
No. Branded domains are purely a cosmetic/branding layer over Singular's standard tracking link infrastructure. All attribution, deep linking, and reporting features work identically.
Yes. Singular automatically provisions an SSL certificate for your branded domain, so all branded links are served over HTTPS. You do not need to provide or manage a certificate yourself.
Need Help?
If you encounter issues during DNS validation, certificate provisioning, or SDK setup, contact your Customer Success Manager or reach out to Singular Support.