At a glance: Advertisers using OneLink links can brand them with their own domain. This improves campaign performance and increases brand exposure.
Branded Links
- Branded Links are used to brand attribution links with your brand and domain. For example, as illustrated in the preceding figure:
- OneLink: abcdef.onelink.me
- Brand abcdef.com
- Subdomain: For example, click
- Implement Branded Links and use your full domain, with the attribution link being click.abcdef.com
- Branded Links improve campaign performance because they:
- Drive trust: Capitalize on your branding, ensure consistent identity, remove friction from user journeys, and improve CTR rates.
- Allow deep linking using your brand.
- Are simple to implement and behave the same as OneLinks.
- Promote brand awareness: Your brand marks your campaigns, rather than a generic link.
Principles of implementation
Branded Links are implemented by associating a full domain defined in your DNS with a OneLink subdomain. This is done by using standard settings in your DNS and setting up a Branded Link in AppsFlyer. In addition, you will need to make some minor changes in your app to support Branded Links.
You will need the assistance of the DNS admin, usually a member of your IT team or your DNS hosting provider and the app developer.
Multiple full domains can be associated with a single OneLink subdomain. This means you can have multiple brands using the same OneLink subdomain.
Setting up Branded Links
Complete the action list to set up a Branded Link.
Action No. | Procedure | Responsibility | Remarks |
---|---|---|---|
1 | Set up a Branded Link in AppsFlyer | Marketer assisted by the DNS admin |
The DNS admin, usually a member of your IT team or your DNS hosting provider, needs to define the full domain (aka host) and to set a CNAME record as described in the procedure |
2 | Set up Branded Links in the app | Developer | Make minor changes to the app code. |
3 | Using and testing Branded Links | Marketer | |
As needed | Editing and deleting branded links | Marketer |
Procedures
Set up a Branded Link in AppsFlyer
Setting up a Branded Links consists of associating a full domain set in your DNS with a OneLink subdomain in AppsFlyer as depicted in the following figure.
Branded Link pointing to AppsFlyer servers
Before you begin:
- Choose a full domain name, for example, click.abcdef.com where abcdef.com is your brand.
- The subdomain, for example click, can also be customized.
- Request that the DNS admin create the full domain (aka host).
To map your full domain to a OneLink subdomain:
- Go to Engagement & Deep Linking > Branded Links.
- Click Add Branded Link.
- In the Brand Domain field, enter your full domain as set in your DNS. For example, click.abcdef.com
Do not place a period after the domain. - Select the OneLink subdomain from the list that displays.
- Click Verify.
The DNS settings status displays. - If the domain doesn't exist message displays:
- Ensure that you have entered the full domain correctly and correct it if necessary.
- Click Reverify.
- If the domain doesn't exist message persists:
- Contact your DNS admin and ask them to investigate.
- Wait for the DNS admin to confirm that the domain is registered.
- Click Reverify. If the message Domain exists displays, continue with this procedure.
- If the AppsFlyer CNAME not found message displays:
- Copy the URL that displays. Tip! Use the copy icon.
- Click Add.
The window closes. - Request that the DNS admin set a CNAME record such that the full domain (Brand domain) points to the specified URL (aka AppsFlyer host). This is depicted in the figure Branded Link pointing to AppsFlyer servers in this section.
- Wait for the DNS admin to confirm that the CNAME is active.
To verify that a Branded Link is operational:
- Go to Engagement & Deep Linking > Branded Links.
- Select the branded link.
The Edit Branded link window opens. - Click Verify.
The DNS settings status display. Both should have a green checkmark to confirm that they are correctly set in the DNS. If either has a red checkmark, contact your DNS admin.
Note: Your DNS records MUST enable letsencrypt.org to create a certificate for your domain (CAA).
Set up Branded Links in the app
- Use the following SDK versions:
- Android V4.10.1 and later
- iOS V4.10.1 and later
- User invite referral (invite a friend) requires SDK version V5.2.0 and later for both iOS and Android
Branded Links SDK implementation considerations
- When deep linking takes place using Branded Links, the AppsFlyer SDK can't get conversion data for installs and deep linking.
- To overcome this, the developer uses the
setOneLinkCustomDomain
SDK API. - This API queries the branded link, gets the OneLink to which it is mapped, and finally queries the OneLink to get conversion data. Example setting.
Ensure that you update the intent-filter of the manifest to include your brand domain by setting the android:host.
Use this API before initializing the SDK in the Android global application class.
Example
public class AFApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
AppsFlyerConversionListener conversionListener = new AppsFlyerConversionListener() {
// implement AppsFlyerConversionListener callbacks
// see https://support.appsflyer.com/hc/en-us/articles/207032126#integration-32-initializing-the-sdk
}
// set branded link domain
AppsFlyerLib.getInstance().setOneLinkCustomDomain("promotion.greatapp.com");
AppsFlyerLib.getInstance().init(AF_DEV_KEY, conversionListener, this);
AppsFlyerLib.getInstance().start(this, AF_DEV_KEY);
}
}
If you have several branded links, pass them all to the API to ensure that you always get the conversion data and can deep link into the app.
Example
AppsFlyerLib.getInstance().setOneLinkCustomDomain("promotion.greatapp.com",
"click.greatapp.com",
"deals.greatapp.com");
To associate domains for iOS Universal Links:
- Set up the branded link as an associated domain in Xcode.
Use the API in the AppDelegate.m, inside the didFinishLaunchingWithOptions method:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/** APPSFLYER INIT **/
[AppsFlyerLib shared].appsFlyerDevKey = @"SED_DEV_KEY";
[AppsFlyerLib shared].appleAppID = @"123456789";
[AppsFlyerLib shared].oneLinkCustomDomains = @[@"promotion.greatapp.com"];
//...
//...
}
If you have several branded links, pass them all to the API to ensure that you always get the conversion data and can deep link into the app.
Example
[AppsFlyerLib shared].oneLinkCustomDomains = @[@"promotion.greatapp.com", @"click.greatapp.com"];
The API should be used in the AppDelegate.swift, inside the didFinishLaunchingWithOptions method:
func application(_ application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
AppsFlyerLib.shared().appsFlyerDevKey = "6CQi4Be6Zs9oNLsCusPbUL"
AppsFlyerLib.shared().appleAppID = "340954504"
AppsFlyerLib.shared().oneLinkCustomDomains = ["example.com"]
//...
//...
}
If you have several branded links, you can pass them to the API as an array of strings. This ensures that no matter what branded link is used, you always get the conversion data and can deep link into the app.
Example
AppsFlyerLib.shared().oneLinkCustomDomains = ["promotion.greatapp.com", "click.greatapp.com"]
Using and testing Branded Links
Prerequisites:
Before using and testing, Branded Links complete the steps in the Branded Links workflow.
To create and test branded links:
- Create a custom attribution link using the OneLink template mapped to the branded link.
- Copy the custom attribution link to a text editor.
- The custom attribution link is made up of a OneLink subdomain, OneLink ID, and custom Link ID. Replace the OneLink subdomain with the Branded Link full domain. Example:
Custom attribution link Branded link abcdef.onelink.me/A1bc/dc1234ef click.abcdef.com/A1bc/dc1234ef - Use the branded link to test installs and deep linking.
- If you use raw data reports as part of the testing, the Original URL field is populated by the branded links.
Editing and deleting Branded Links
Editing enables you to change the mapping of an existing full domain to a different OneLink subdomain. There is no need to set a CNAME.
Caution
Modifying the Branded Links of active campaigns may alter or disable link functionality.
To edit a branded link mapping:
- Go to Engaging & Deep Linking > Branded Links.
- Select the Action command.
- Select Edit.
To delete a branded link mapping:
- Reach out to your CSM you can't do it yourself or contact hello@appsflyer.com
Troubleshooting, traits, and limitations
Troubleshooting
Symptom | Cause/solution |
---|---|
Branded Link cannot be mapped to a OneLink template |
|
Branded Link is not deep linking into the app |
|
No installs measured from Branded Links |
|
No re-engagements recorded from branded links |
Ensure that the following are active and configured:
|
Traits and limitations
Trait | Yes ✓ / No x | Remarks |
---|---|---|
Ad network access | x | |
Agency access | x | Agencies cannot access the Branded Links section to create Branded Links. However, they can create OneLinks custom links using a Branded Links subdomain. |
Agency transparency | x | |
App-specific time zone | N/A | |
App-specific currency | N/A | |
Character limitation | N/A | When entering your branded domain, the last character cannot be a period ("."). |
Size limitations | N/A | |
Rate limitation | ✓ |
Branded links SSL/HTTP certificates are arranged by AppsFlyer using Let's Encrypt, with a rate limit of 50 new certificates per week per domain. |
Organic data | ✓ | |
Non-organic data | ✓ | |
Data freshness | N/A | |
Historical data | ✓ | |
Team member access | ✓ |