---
schema_version: "1"
id: bd37f00bc13ab9e0d9e5ea38e6f6a8a34a88c492b3a94c9a7ae7d01db7969dcc
title: Using iOS Universal Links in Email Studio
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/mktg/264-0-0/mc_es_implement_ios_universal_link.md
canonical_url: https://help.salesforce.com/s/articleView?id=mktg.mc_es_implement_ios_universal_link.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 611f32ade4e755af9d02ddaceb4b92d8682be5f410057d17a140fbce6869635d
description: The iOS universal link feature configures whether links in your Email Studio messages open in a previously installed iOS app or in a browser.
products:
  - Marketing
  - Marketing Cloud Engagement
release: "264"
---
# Using iOS Universal Links in Email Studio

The iOS universal link feature configures whether links in your Email Studio messages open in a previously installed iOS app or in a browser.

In this topic:

- Implement iOS Universal Links
- Test iOS Universal Links
- Force iOS Links to Open in a Browser

## Implement iOS Universal Links

To use universal links, you need the Sender Authentication Package (SAP) and an SSL certificate for the click domain. Each AppID and click domain pair that you use must be unique across all active apps in your business units. Universal links work only with HTTPS connections.

1. Modify your iOS app to accept universal link requests.
    
    1. Add your branded click domain link entry to the com.apple.developer.associated-domains entitlement. Make sure that the entry includes the applinks prefix.
        
        For example, an entry for click.example.com looks like this: `"applinks:click.example.com"`.
    2. Use the webpageURL property on the NSUserActivity object provided by iOS to determine whether the click originates from the click domain that Marketing Cloud Engagement uses.
        
        The property appears like this wrapped URL: `https://click.example.com/?qs=hxdwbvpwueDMUFuWaNEhguEVdMLWCPTsutky0fd`
    3. Verify that the incoming URL is from Engagement by performing a GET call to unwrap the first URL.
    4. If your emails are using Einstein Content Selection, add another GET call to unwrap the intermediate Einstein content selection URL.
        
        Example of an Einstein Content Selection intermediate URL: `https://ecs.us.sfmc-einstein.com/einstein/api/block/44644947...`
    5. After the URL is fully unwrapped, retrieve the URL’s destination.
    6. To parse the logic from the unwrapped URL and navigate to the correct view in the app, call a method.
    
    This pseudocode illustrates the steps for accepting a universal link request. This method accommodates wrapped URLs from Marketing Cloud Engagement that can use the Einstein Content Selection app. It adds a redirect before reaching the original URL. The pseudocode refers to a function called `Networking.getUnwrapped()`, which retrieves the final URL by issuing a GET request to the URL and retrieving the value of its `location` header.
    
    - ```
        public func application(_ application: UIApplication, 
                                continue userActivity: NSUserActivity, 
                                restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
        
          // Example: Double wrapped url
          if let url = userActivity.webpageURL {
            if url.absoluteString.contains("sfmc-einstein") {
              Networking.getUnwrapped(url) { result in
                switch result {
                  case .success(let singleUnwrappedURL):
                    // first unwrapped link; will need to be unwrapped again
                    Networking.getUnwrapped(singleUnwrappedURL) { result in
                      switch result {
                        case .success(let doubleUnwrappedURL):
                          // Final unwrapped link to be parsed by app
                          parseAndRedirect(with: doubleUnwrappedURL)
                        case .failure:
                          print("Failed to get 2nd unwrapped link")
                      }
                    }
                  case .failure:
                    print("Failed to get 1st unwrapped link")
                }
              }
            }
          }
          return true
        }
        ```
2. Configure the iOS universal link for Email Studio. These settings are used to deploy the apple-app-site-association (AASA) file to a click domain.
    
    1. In the Email Studio Admin section, under Deep Linking, enter your AppID. The AppID is your application’s alphanumeric teamID followed by the bundleID.
    2. To force a mobile web experience for profile and subscription centers, select **Exclude Profile and Unsub Center**.
    3. Save the entry.
    4. The order of entries affects the order of entries in the AASA file. To change the ordering, delete the entries and enter them in the correct order.
        
        Your first entry must be a test or staging app.
    5. After it’s configured, your click domain serves an AASA file. The AASA is https://click.{your-sap-domain}/.well-known/apple-app-site-association.
    
    - ```
        {
          "applinks": {
            "apps": [],
            "details": [
              {
                "appID": "ABC123EFG.com.staging.app",
                "paths": [
                  "NOT /subscription_center.aspx*",
                  "NOT /profile_center.aspx*",
                  "NOT /unsub_center.aspx*",
                  "NOT /u/*",
                  "/*"
                ]
              },
              {
                "appID": "HJK456LMN.com.production.app",
                "paths": [
                  "NOT /subscription_center.aspx*",
                  "NOT /profile_center.aspx*",
                  "NOT /unsub_center.aspx*",
                  "NOT /u/*",
                  "/*"
                ]
              }
            ]
          }
        }
        ```

## Test iOS Universal Links

Before testing links with your own mobile app, add the domain to the iOS app entitlement. Using the same click domain for development and production versions doesn’t allow differentiation between test data and production data.

1. To test links, send email messages to development versions of your app.
2. For all versions of your app to use the feature, include all applicable AppID values in your association file. If you only use a single AppID value, include that value only in local builds of your app for testing purposes.
3. Make sure that you use SSL certificates for all sandbox or testing accounts for Marketing Cloud Engagement.

## Force iOS Links to Open in a Browser

Create a tag that prevents iOS universal links from opening the link in your mobile app. Instead, this tag excludes the universal link and forces your mobile device to open the link in a browser window.

1. Open the HTML version of the email message containing the link.
2. Add `mc-deep-link="false"` to the `<a>` tag of the link, like this example:
    
    `<a href="https://www.example.com" mc-deep-link="false">Your Link</a>`
3. Save the email message.