Zum Inhalt springen

Leitfaden für Deeplinking unter iOS

Dieser Leitfaden unterstützt Sie bei der Auswahl der geeigneten Deeplinking-Strategie für Ihre iOS-App. Ihre Wahl hängt davon ab, welchen Messaging-Kanal Sie verwenden und ob Sie einen Drittanbieter für Links wie Branch nutzen.

Details zur Implementierung finden Sie unter Deeplinking. Informationen zur Fehlerbehebung finden Sie unter Fehlerbehebung bei Deeplinking.

Es gibt drei Möglichkeiten, Links aus Braze-Nachrichten in Ihrer iOS-App zu verarbeiten. Jede funktioniert anders und eignet sich für unterschiedliche Kanäle und Anwendungsfälle.

Linktyp Beispiel Am besten geeignet für Öffnet sich ohne installierte App?
Angepasstes Schema myapp://products/123 Push, In-App-Nachrichten, Content Cards und Banner Nein – Link schlägt fehl
Universal Link https://myapp.com/products/123 E-Mail, SMS, Kanäle mit Klick-Tracking Ja – Fallback auf Web
Web-URL in App öffnen Beliebige https://-URL Anzeige von Webinhalten in einer modalen WebView Nicht zutreffend – Anzeige in WebView

Deeplinks mit angepasstem Schema (zum Beispiel myapp://products/123) öffnen Ihre App direkt auf einem bestimmten Bildschirm. Sie sind die einfachste Option für Kanäle, in denen Links nicht von Dritten verändert werden.

Verwenden Sie Deeplinks mit angepasstem Schema, wenn:

  • Sie Push-Benachrichtigungen, In-App-Nachrichten, Content Cards oder Banner versenden
  • der Link nicht funktionieren muss, wenn die App nicht installiert ist
  • Sie kein Klick-Tracking benötigen (Link-Wrapping durch E-Mail-Anbieter)

Verwenden Sie keine Deeplinks mit angepasstem Schema, wenn:

  • Sie E-Mails versenden – E-Mail-Anbieter umschließen Links für das Klick-Tracking, wodurch angepasste Schemata nicht mehr funktionieren
  • der Link auf eine Webseite zurückfallen soll, wenn die App nicht installiert ist

Universal Links (zum Beispiel https://myapp.com/products/123) sind Standard-HTTPS-URLs, die iOS an Ihre App weiterleiten kann, anstatt sie in einem Browser zu öffnen. Sie erfordern eine serverseitige Konfiguration (eine AASA-Datei) und eine Einrichtung in der App (Associated Domains Entitlement).

Verwenden Sie Universal Links, wenn:

  • Sie E-Mails versenden. Ihr E-Mail-Anbieter umschließt Links für das Klick-Tracking, daher müssen Links HTTPS verwenden.
  • Sie SMS oder andere Kanäle nutzen, in denen Links umschlossen oder gekürzt werden.
  • der Link auf eine Webseite zurückfallen soll, wenn die App nicht installiert ist.
  • Sie einen externen Linking-Anbieter wie Branch oder AppsFlyer verwenden.

Verwenden Sie keine Universal Links, wenn:

  • Sie Deeplinks nur aus Push-Benachrichtigungen, In-App-Nachrichten, Bannern oder Content Cards benötigen. Angepasste Schemata sind einfacher.

„Web-URL in App öffnen“

Diese Option öffnet eine Webseite in einer modalen WebView innerhalb Ihrer App. Sie wird vollständig vom Braze SDK über Braze.WebViewController verarbeitet – Sie müssen keinen Code zur URL-Verarbeitung schreiben.

Verwenden Sie „Web-URL in App öffnen“, wenn:

  • Sie eine Webseite (etwa eine Aktion oder einen Artikel) anzeigen möchten, ohne Ihre App zu verlassen.
  • die URL eine Standard-HTTPS-Webseite ist und kein Deeplink zu einem bestimmten App-Bildschirm.

Verwenden Sie „Web-URL in App öffnen“ nicht, wenn:

  • Sie zu einer bestimmten Ansicht in Ihrer App navigieren müssen. Verwenden Sie stattdessen ein angepasstes Schema oder einen Universal Link.
  • die Webseite eine Authentifizierung erfordert oder Content-Security-Policy-Header enthält, die das Einbetten blockieren.
Anforderung Details
AASA-Datei Nicht erforderlich
Info.plist Registrieren Sie Ihr Schema unter CFBundleURLTypes und fügen Sie es zu LSApplicationQueriesSchemes hinzu
App-Delegate-Methode Implementieren Sie application(_:open:options:) oder scene(_:openURLContexts:), wenn Ihre App Szenen verwendet, um Links mit angepasstem Schema zu verarbeiten. Dazu gehören auch Links mit angepasstem Schema, die aus Braze-Nachrichten geöffnet werden
Konfiguration des Braze SDK Keine. Das SDK öffnet URLs mit angepasstem Schema standardmäßig, sofern braze(_:shouldOpenURL:) nicht false zurückgibt
Anforderung Details
AASA-Datei Erforderlich – hosten Sie sie unter https://yourdomain.com/.well-known/apple-app-site-association
Associated Domains Fügen Sie applinks:yourdomain.com in Xcode unter Signing & Capabilities hinzu
App-Delegate-Methode Implementieren Sie application(_:continue:restorationHandler:), um NSUserActivity zu verarbeiten
Konfiguration des Braze SDK Setzen Sie configuration.forwardUniversalLinks = true
BrazeDelegate (optional) Implementieren Sie braze(_:shouldOpenURL:) für angepasstes Routing (zum Beispiel mit Branch)

„Open Web URL Inside App“

Anforderung Details
AASA-Datei Nicht erforderlich
App-Delegate-Methode Nicht erforderlich – das SDK übernimmt dies automatisch
Konfiguration des Braze SDK Keine – wählen Sie im Campaign-Composer Open Web URL Inside App aus

Wann Sie eine AASA-Datei benötigen

Eine Apple App Site Association (AASA)-Datei ist nur erforderlich, wenn Sie universelle Links verwenden. Sie teilt iOS mit, welche URLs Ihre App verarbeiten kann.

Sie benötigen eine AASA-Datei, wenn:

  • Sie Deeplinks in E-Mail-Kampagnen versenden (da ESPs Links in HTTPS-Klick-Tracking-URLs einbinden).
  • Sie Deeplinks in SMS-Kampagnen versenden (da Links möglicherweise zu HTTPS-URLs gekürzt werden).
  • Sie Branch, AppsFlyer oder einen anderen Linking-Anbieter verwenden (da diese ihre eigenen HTTPS-Domains nutzen).
  • Sie universelle Links aus Push-Benachrichtigungen, In-App-Nachrichten oder Content Cards verwenden (weniger verbreitet, aber möglich mit forwardUniversalLinks = true).

Sie benötigen keine AASA-Datei, wenn:

  • Sie ausschließlich Deeplinks mit angepasstem Schema (zum Beispiel myapp://) aus Push-Benachrichtigungen, In-App-Nachrichten, Content Cards oder Bannern verwenden.
  • Sie die Option Web-URL in der App öffnen nutzen.

Anweisungen zur AASA-Einrichtung finden Sie unter Universelle Links und App-Links.

Wann Sie App-Code zur Verarbeitung von Links benötigen

Welche Delegate-Methode Sie implementieren, hängt von der Art des verwendeten Links ab und davon, ob Sie eine angepasste Routing-Logik benötigen:

Delegate-Methode Verarbeitet Wann implementieren
BrazeDelegate.braze(_:shouldOpenURL:) Alle vom Braze SDK geöffneten URLs Sie benötigen eine angepasste Routing-Logik (z. B. Branch, bedingte Verarbeitung, Analytics) für Braze-Nachrichten
application(_:open:options:) oder scene(_:openURLContexts:) Deeplinks mit angepasstem Schema (myapp://) Sie verwenden Deeplinks mit angepasstem Schema aus einem beliebigen Kanal, einschließlich Braze-Nachrichten
application(_:continue:restorationHandler:) Universelle Links (https://) Sie verwenden universelle Links aus E-Mail, SMS oder mit forwardUniversalLinks = true

BrazeDelegate.shouldOpenURL im Vergleich zu den application-Methoden zum Öffnen von URLs

Bei Push-Benachrichtigungen, In-App-Nachrichten, Content Cards und Bannern ruft das Braze SDK BrazeDelegate.braze(_:shouldOpenURL:) auf, bevor es die URL öffnet. Der URL-Kontext enthält den Quellkanal. Verwenden Sie diese Methode, um:

  • Die URL an einen Drittanbieter (z. B. Branch oder AppsFlyer) weiterzuleiten, bevor Braze sie öffnet
  • Analytics zu protokollieren
  • false zurückzugeben, damit Braze die URL nicht öffnet

Wenn Sie shouldOpenURL nicht implementieren, gibt das SDK standardmäßig true zurück, und Braze öffnet die URL. Links mit angepasstem Schema werden über das System geöffnet, das die Methode scene(_:openURLContexts:) oder application(_:open:options:) Ihrer App aufruft. Web-Links werden je nach Nachrichteneinstellungen in einer WebView oder im Browser geöffnet.

Wenn Sie shouldOpenURL implementieren und false zurückgeben, verarbeiten Sie die URL in dieser Methode. Braze öffnet sie nicht und leitet die URL auch nicht an die Delegate-Methoden Ihrer Application oder Scene weiter.

Wenn Braze einen Link mit angepasstem Schema öffnet, ruft iOS application(_:open:options:) auf bzw. scene(_:openURLContexts:), wenn Ihre App Scenes verwendet. Wenn forwardUniversalLinks = true gesetzt ist, übergibt Braze universelle Links direkt an scene(_:continue:) oder application(_:continue:restorationHandler:). Sind beide implementiert, ruft Braze nur die Scene-Delegate-Methode auf.

Verwendung von Branch mit Braze

Wenn Sie Branch als Ihren Linking-Anbieter verwenden, sind für Ihre Einrichtung einige zusätzliche Schritte erforderlich, die über die Standardkonfiguration für universelle Links hinausgehen:

  1. Branch SDK: Integrieren Sie das Branch SDK gemäß der Dokumentation von Branch.
  2. Zugehörige Domains: Fügen Sie Ihre Branch-Domain (z. B. applinks:yourapp.app.link) in Xcode unter Signing & Capabilities hinzu.
  3. BrazeDelegate: Implementieren Sie braze(_:shouldOpenURL:), um Branch-Links an das Branch SDK weiterzuleiten. Geben Sie false zurück, damit Braze die URL nach der Weiterleitung nicht öffnet.
  4. Universelle Links weiterleiten: Setzen Sie configuration.forwardUniversalLinks = true in Ihrer Braze-SDK-Konfiguration.

Implementierungsdetails und Anleitungen zur Fehlerbehebung finden Sie unter Branch für Deeplinking.

New Stuff!