Verwenden und Konfigurieren von Deeplinks in E-Mails und SMS deeplinks

Auf dieser Seite: Erfahren Sie, wie Sie Deeplinks in E-Mail- und SMS-Inhalten erstellen, in Adobe Journey Optimizer konfigurieren und die getrackten Links in Ihren iOS- und Android-Apps verarbeiten können, damit die Empfängerinnen und Empfänger auf dem richtigen In-App-Bildschirm landen.

Deeplinks helfen Ihnen, Empfängerinnen und Empfänger von einer E-Mail oder SMS-Nachricht zu einem bestimmten Bildschirm oder Inhalt in Ihrer App zu führen. Dadurch können Benutzende direkt zum gewünschten In-App-Erlebnis gelangen, ohne dass sie über einen Webbrowser oder einen App Store weitergeleitet werden, sodass die Journey relevant und markenkonform bleibt.

Wenn Ihre Empfängerinnen und Empfänger auf den Deeplink klicken, werden sie direkt zum gewünschten In-App-Inhalt weitergeleitet – vorausgesetzt, Sie haben Folgendes abgeschlossen:

NOTE
Adobe Journey Optimizer unterstützt Deeplinking für iOS und Android mithilfe von getrackten URLs (/ee/v1/mclick/*), um Kompatibilität und Klick-Tracking sicherzustellen.
CAUTION
Deeplinks funktionieren nur, wenn Sie die Schritte Konfiguration und App-Implementierung auf dieser Seite abgeschlossen haben.

E-Mail authoring-email

Für E-Mail-Nachrichten haben Sie zwei Möglichkeiten, einen Deeplink einzufügen:

  • E-Mail-Designer: Stellen Sie sicher, dass das Linktracking aktiviert ist. Wählen Sie das Element aus, das Sie verknüpfen möchten (Text, Schaltfläche oder Bild), klicken Sie auf Link einfügen in der kontextuellen Symbolleiste und wählen Sie Deeplink aus, um Ihre Deeplink-URL einzugeben. Weitere Informationen zum Einfügen von Links

  • Personalisierungseditor (Code): Fügen Sie den Deeplink mithilfe des folgenden Ausschnitts direkt in HTML ein:

    code language-html
    <a class="arc-link" data-nl-type="DEEPLINK" href="<<deeplink_url>>" id="acr-link-7821368" style="text-decoration:underline;" target="_blank" data-tracking-type="DEEPLINK">Click Here</a>
    
    note tip
    TIP
    Ersetzen Sie <<deeplink_url>> durch Ihre tatsächliche Deeplink-URL und verwenden Sie zur Vermeidung von Konflikten für jeden Block eine eindeutige id.

SMS authoring-sms

Für SMS werden Deeplinks mit der URL-Helper-Funktion im Personalisierungseditor erstellt. Informationen zum Hinzufügen von Links zu SMS-Inhalten finden Sie in diesem Abschnitt.

Verwenden Sie die folgende Syntax, um Deeplinks in SMS-Inhalte einzufügen:

{{url originalUrl='<<url>>' type='DEEPLINK' action='CLICK'}}
TIP
Ersetzen Sie <<url>> durch Ihre tatsächliche Deeplink-URL.

Konfiguration in Journey Optimizer configuration

Um Deeplinks in E-Mails und SMS für Ihre Apps verwenden zu können, führen Sie die folgenden Konfigurationsschritte aus.

NOTE
Dieser Abschnitt gilt für die Verwendung universeller Links (iOS) und App-Links (Android) (HTTPS-basierte Deeplinks).
  1. Delegieren Sie in Journey Optimizer die Subdomain, für die Deeplinking aktiviert ist. Weitere Informationen

  2. Hosten Sie die AASA-Datei für iOS und die assetLinks.json-Datei für Android in Ihrer Subdomain. Wenden Sie sich mit den folgenden Informationen an die ](https://helpx.adobe.com/de/enterprise/admin-guide.html/enterprise/using/support-for-experience-cloud.ug.html){target=“_blank”}Adobe-Kundenunterstützung[ oder Ihren Adobe-Support-Kontakt:

    • Für iOS (AASA):

      • Delegierte Subdomain
      • App-Paket-ID
    • Für Android (assetLinks.json):

      • Delegierte Subdomain
      • App-Paket-ID
      • SHA-256-Zertifikat-Fingerabdruck
IMPORTANT
Deeplinking über die Adobe-Infrastruktur gilt, wenn das Linktracking für Ihre Nachricht aktiviert ist – in den Mail-Tracking-Einstellungen oder im Abschnitt Aktionstracking für SMS-Kampagnen. Getrackte Deeplink-Klicks verwenden URLs unter /ee/v1/mclick/*, die von Adobe gehostet und aufgelöst werden.
Bei nicht getrackten Links wird die URL nicht über Adobe-Systeme neu geschrieben. Sie müssen universelle Links oder App-Links auf Ihren eigenen Domains und beim Hosting konfigurieren, damit diese Links Ihre App wie vorgesehen öffnen.

App-Implementierung mobile-implementation

In diesem Abschnitt wird erläutert, wie Sie mobile Deeplinks mit Adobe Journey Optimizer implementieren, sodass in einem typischen HTTPS-Setup (universelle Links und App-Links) eine einzelne URL Folgendes kann:

  • einen bestimmten Bildschirm in der App öffnen, wenn die App installiert ist, oder
  • Ihre Website als Fallback öffnen, wenn die App nicht installiert ist.

Wenn das Linktracking für Ihre Nachricht aktiviert ist, trackt Journey Optimizer diese Klicks weiterhin, bezieht sie in das Reporting ein und kann sie in Inhaltsexperimenten verwenden, wenn Sie sie für die Nachricht ausführen.

In diesem Abschnitt finden Sie allgemeine Implementierungsmuster für Deeplinks. Das genaue Setup hängt von Ihrer App-Architektur und dem Routing-Framework ab.

  1. Wählen Sie in Xcode Ihr Ziel über Signing & Capabilities > + Capability > Associated Domains aus.

  2. Fügen Sie Einträge für Ihre delegierten Subdomains hinzu, z. B.:

    code language-text
    applinks:www.mybusiness.com
    applinks:data.email.mybusiness.com
    
  3. Verarbeiten Sie universelle Links in der App und rufen Sie den ursprünglichen Link aus dem Antwort-Header ab.

    accordion
    Beispiel: iOS 13+ mit Szenen
    code language-swift
    class SceneDelegate: UIResponder, UIWindowSceneDelegate {
    
        func scene(_ scene: UIScene,
                  continue userActivity: NSUserActivity) {
            guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
                  let incomingURL = userActivity.webpageURL else {
                return
            }
    
            handleUniversalLink(url: incomingURL)
        }
    
        private func handleUniversalLink(url: URL) {
            // Only handle AJO tracked mobile clicks
            guard url.host == "data.email.mybusiness.com",
                  url.path.hasPrefix("/ee/v1/mclick") else {
                // Could also handle direct www.mybusiness.com links here
                return
            }
    
            resolveTrackedUrlAndRoute(url)
        }
    
        private func resolveTrackedUrlAndRoute(_ trackedUrl: URL) {
            var request = URLRequest(url: trackedUrl)
            request.httpMethod = "GET"
    
            URLSession.shared.dataTask(with: request) { _, response, error in
                guard error == nil,
                      let httpResponse = response as? HTTPURLResponse,
                      let locationValue = httpResponse.allHeaderFields["Location"] as? String,
                      let finalUrl = URL(string: locationValue) else {
                    return
                }
    
                DispatchQueue.main.async {
                    self.routeToDestination(finalUrl)
                }
            }.resume()
        }
    
        private func routeToDestination(_ url: URL) {
            // Example: map URL paths to screens
            // https://www.mybusiness.com/dashboard/offers/coupons
            // → OffersViewController for Coupons
        }
    }
    
IMPORTANT
Die App muss einen GET für die mclick-URL durchführen und den Location-Header lesen und dann basierend auf der endgültigen-URL weiterleiten.
Öffnen Sie nicht einfach die mclick-URL in Safari. Das widerspricht dem Zweck des Deeplinkings.
  1. Fügen Sie den Intent-Filter für App-Links in Ihrer Android-App hinzu.

    code language-xml
    <activity
        android:name=".DeepLinkActivity"
        android:exported="true">
    
        <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="https"
                android:host="data.email.mybusiness.com"
                android:pathPrefix="/ee/v1/mclick" />
        </intent-filter>
    
    </activity>
    
  2. Implementieren Sie den Deeplink-Handler.

    accordion
    In Kotlin:
    code language-kotlin
    class DeepLinkActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
    
            val trackedUri = intent?.data
            if (trackedUri == null ||
                trackedUri.host != "data.email.mybusiness.com" ||
                !trackedUri.path.orEmpty().startsWith("/ee/v1/mclick")) {
                finish()
                return
            }
    
            resolveTrackedUrlAndRoute(trackedUri)
        }
    
        private fun resolveTrackedUrlAndRoute(trackedUri: Uri) {
            lifecycleScope.launch(Dispatchers.IO) {
                try {
                    val finalUrl = followRedirect(trackedUri.toString())
                    withContext(Dispatchers.Main) {
                        routeToDestination(finalUrl)
                        finish()
                    }
                } catch (e: Exception) {
                    // Optionally log error, fallback to browser
                    finish()
                }
            }
        }
    
        private fun followRedirect(trackedUrl: String): Uri {
            val client = OkHttpClient.Builder()
                .followRedirects(false) // We want to read Location ourselves
                .build()
    
            val request = Request.Builder()
                .url(trackedUrl)
                .get()
                .build()
    
            client.newCall(request).execute().use { response ->
                val location = response.header("Location")
                    ?: throw IllegalStateException("Missing Location header")
                return Uri.parse(location)
            }
        }
    
        private fun routeToDestination(finalUri: Uri) {
            // Example: interpret https://www.mybusiness.com/dashboard/offers/coupons
            // and open the correct Activity / Fragment
        }
    }
    
IMPORTANT
Wie iOS muss die App die mclick-URL aufrufen und den Location-Header verwenden, um das endgültige Ziel zu bestimmen.
Verwenden Sie followRedirects(false), damit Sie die Umleitungshandhabung steuern und Analysen bei Bedarf genau protokollieren können.
Die Routing-Logik ist App-spezifisch. Definieren Sie eine klare Zuordnung von URLs zu Bildschirmen.
  • Stabile Pfade verwenden: Routen bevorzugen, die gegenüber Änderungen der App-Benutzeroberfläche robust sind (z. B. /account/orders statt /tab/3/view/2).
  • Getrackte Pfade berücksichtigen: Wenn das Linktracking aktiviert ist, kann der angeklickte Link getrackte Pfadmuster verwenden (z. B. /ee/v1/mclick/). Stellen Sie sicher, dass Ihr Router die endgültige URL analysieren kann, nachdem der getrackte Link aufgelöst wurde.
  • Parameter vorhersehbar halten: Definieren Sie ein konsistentes Parameterschema (z. B. ?orderId=12345).
  • Vertrauliche Daten in URLs vermeiden: Fügen Sie keine Geheimnisse oder personenbezogenen Daten direkt in die Deeplink-URL ein.
  • Deeplink testen: Führen Sie einen Testversand durch und klicken Sie auf den Deeplink auf einem Gerät, auf dem die App installiert ist.
  • Auf echten Geräten validieren: Universelle Links und das Verhalten bei der Auflösung getrackter Links sind bei der Validierung auf physischen Geräten zuverlässiger als auf Simulatoren.
  • App-seitiges Routing validieren: Wenn der Deeplink nicht den erwarteten Bildschirm öffnet, validieren Sie das App-seitige Routing und das URL-Format (Host/Pfad/Abfrage und URL-Codierung).
  • Die App-Initialisierung beachten: Das Verhalten von App-Links/universellen Links ist am zuverlässigsten, nachdem die App mindestens einmal installiert und geöffnet wurde.

Fehlerbehebung und häufig gestellte Fragen troubleshooting-faq

Die App wird nicht geöffnet, wenn ich auf den Deeplink tippe.
  • Stellen Sie sicher, dass die URL den Host- und Pfadmustern entspricht, für die Ihre App registriert ist, einschließlich getrackter Klickpfade, wenn das Linktracking aktiviert ist (z. B. Pfade unter /ee/v1/mclick/).
  • Bestätigen Sie bei universellen Links von iOS und Links zur Android-App, dass die Domain-Zuordnung (AASA/assetlinks.json) korrekt konfiguriert und erreichbar ist.
  • Testen auf einem realen Gerät (Simulatoren/Emulatoren können sich für die Link-Zuordnung anders verhalten).
Die App wird geöffnet, navigiert jedoch nicht zum erwarteten Bildschirm.
  • Bestätigen Sie, dass der App-seitige Router den URL-Pfad/die Abfrage korrekt analysiert.
  • URL-Codierung überprüfen: reservierte Zeichen sollten URL-codiert sein.
  • Überprüfen Sie, ob Parameternamen und -werte mit den Erwartungen des Routers übereinstimmen.
Was passiert, wenn die App nicht installiert ist?
  • Wenn dieselbe HTTPS-URL von Ihrer Website bereitgestellt werden kann, kann der Link eine Web-Seite als Fallback öffnen, wenn die App nicht installiert ist (konfigurieren Sie Ihr Web-Ziel und das Routing entsprechend).
Wie binde ich Sonderzeichen sicher in Parameter ein?
URL-codierte Abfrageparameterwerte. Dadurch werden Bereitstellungs- und Rendering-Probleme reduziert und Parsing-Fehler in der App vermieden.
Wie sollten wir End-to-End testen?
  • Erstellen Sie einen Testversand mit einem Deeplink und klicken Sie auf iOS- und Android-Geräten darauf (installierte und nicht installierte Szenarien).

  • Validieren:

    • Der endgültige Wert des E-Mail- oder SMS-Links (Host/Pfad/Abfrage)
    • Die Verknüpfung auf Betriebssystemebene (bei Verwendung von universellen Links/App-Links)
    • Das In-App-Routing-Ergebnis
Ich habe eine App, aber verschiedene Subdomains für die Organisation. Sollte ich für jede Subdomain die Erstellung von AASA und assetLinks.json anfordern?
Ja. Wenn Sie für jede delegierte Subdomain Deeplinking wünschen, fordern Sie die AASA- und assetlinks.json-Konfiguration für jede Subdomain an, die die Funktion unterstützen soll.
Sollte die von mir konfigurierte URL ein Deeplinking-Format verwenden (z. B. appname://path)?
Sie können ein benutzerdefiniertes URL-Schema verwenden (z. B. appname://path), der empfohlene Ansatz ist jedoch ein universeller Link oder ein App-Link (https://), der dem HTTPS-basierten Setup in den Konfigurationsabschnitten und den Implementierungsabschnitten auf dieser Seite entspricht.
Sind UTM-Parameter für die URL in der App für Analysen verfügbar?
Ja. UTM-Parameter, die Sie in Journey Optimizer konfigurieren, werden in die endgültige URL aufgenommen, die im Location-Header zurückgegeben wird, wenn Ihre App einen GET-Vorgang für die mclick-URL durchführt, sodass Sie sie für In-App-Analysen verwenden können.
Was ist das Benutzererlebnis für /ee/v1/click/-URLs?
Der Link wird im Standard-Webbrowser des Geräts geöffnet (Standard-Klick-Tracking-Verhalten) und nicht wie ein App-Deeplink durch den auf dieser Seite beschriebenen mclick-Fluss gehandhabt.
AI Knowledge Reference

This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.

For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.

  • TL;DR: This page explains how to author deep links in email and SMS content, configure them in Journey Optimizer, and handle the tracked links in iOS and Android apps so recipients land on the right in-app screen.

Intents:

  • Author a deep link in email (Email Designer or Personalization editor code) and in SMS (Url helper function)
  • Complete the Journey Optimizer configuration for universal links (iOS) and app links (Android)
  • Implement mobile app handling of tracked mclick links in iOS and Android
  • Follow recommended practices and troubleshoot deep links that do not open the app or the expected screen
  • Test deep links end-to-end by sending a proof and clicking on real devices

Glossary:

  • Deep link: A link that takes recipients from an email or SMS message directly to a specific screen or content in a mobile app (product-specific)
  • Universal links (iOS) / App links (Android): HTTPS-based deep links the configuration on this page applies to (product-specific)
  • AASA / assetLinks.json: The association files hosted on your delegated subdomain for iOS (AASA) and Android (assetLinks.json) (product-specific)
  • /ee/v1/mclick/*: Tracked URLs that Adobe hosts and resolves for deep link clicks when link tracking is enabled (product-specific)

Guardrails:

  • Deep links will not work unless you complete both the configuration and the mobile app implementation steps on this page.
  • Deep linking is supported for both iOS and Android using tracked URLs (/ee/v1/mclick/*) for compatibility and click tracking.
  • The configuration section applies when you use universal links (iOS) and app links (Android), which are HTTPS-based deep links.
  • Tracked deep link clicks use URLs under /ee/v1/mclick/*, which Adobe hosts and resolves, and apply when link tracking is enabled for the message.
  • For non-tracked links, the URL is not rewritten through Adobe systems; you must configure universal links or app links on your own domains and hosting.
  • The app must perform a GET on the mclick URL and read the Location header, then route based on the final URL; do not simply open the mclick URL in a browser.
  • Hosting the AASA (iOS) and assetLinks.json (Android) files requires contacting Adobe Customer Care with the delegated subdomain and app bundle ID; Android also requires the SHA-256 certificate fingerprint.

Terminology:

  • Canonical name: Deep link — Acronym: n/a — variants: deeplink, Deeplink (Insert link option)
  • Synonyms: “universal links” (iOS) and “app links” (Android) = the HTTPS-based deep link setup
  • Do not confuse: “/ee/v1/mclick/*” (tracked deep link flow handled as an app deep link) ≠ “/ee/v1/click/” (opens in the device’s default web browser, standard click tracking)
  • Do not confuse: “tracked links” (rewritten through Adobe, use mclick) ≠ “non-tracked links” (not rewritten; configured on your own domains)

FAQ:

  • Q: What must be done before deep links work? — Complete both the configuration steps in Journey Optimizer and the mobile app implementation steps for iOS and Android.
  • Q: How should the app handle the tracked link? — Perform a GET on the mclick URL, read the Location header, and route based on the final URL; do not open the mclick URL directly in a browser.
  • Q: What happens if the app is not installed? — If the same HTTPS URL can be served by your website, the link can open a web page as a fallback.
  • Q: Are UTM parameters available in the app? — Yes; UTM parameters configured in Journey Optimizer are included in the final URL returned in the Location header.
  • Q: How do I test end-to-end? — Send a proof (create a proof with a deep link) and click it on iOS and Android devices, for both installed and not-installed scenarios, validating on real devices.
  • Q: Should I use a custom URL scheme like appname://path? — You can, but the recommended approach is a universal link or app link (https://) matching the HTTPS-based setup on this page.
recommendation-more-help
journey-optimizer-help