Konfigurera e-postmeddelanden email-deeplinks
Med hjälp av e-postlänkar kan du ta mottagare från ett e-postmeddelande till en viss skärm eller innehållsuppgift i din mobilapp. Det hjälper människor att nå den avsedda upplevelsen direkt i appen, utan att de dirigeras via en webbläsare eller en appbutik, så att resan förblir relevant och varumärkesskyddad.
Om du vill lägga till en överordnad länk i ett e-postmeddelande kontrollerar du att länkspårning är aktiverat. Markera elementet som du vill länka (text, knapp eller bild) i e-post-Designer, klicka på Insert link i det sammanhangsberoende verktygsfältet och välj Deeplink för att ange URL-adressen för länken. Läs mer om att infoga länkar
När mottagarna klickar på länken tas de direkt till det avsedda innehållet i appen - förutsatt att du har slutfört konfigurationsstegen som finns på den här sidan, som omfattar:
- Konfigurera e-postmeddelanden i Journey Optimizer
- Implementera hantering av deplink för iOS och Android i mobilappen
/ee/v1/mclick/*) för att säkerställa kompatibilitet och klickspårning.Konfiguration i Journey Optimizer configuration
Om du vill kunna använda e-postmeddelanden för dina mobilappar slutför du konfigurationsstegen nedan.
-
I Journey Optimizer ska du delegera den underdomän där deplinking är aktiverat. Läs mer
-
Lägg AASA-filen för iOS och filen assetLinks.json för Android i din underdomän. Kontakta Adobe kundtjänst eller din Adobe-representant med information nedan:
-
För iOS (AASA):
- Delegerad underdomän
- Programpaket-ID
-
För Android (assetLinks.json):
- Delegerad underdomän
- Programpaket-ID
- SHA-256-certifikatfingeravtryck
-
/ee/v1/mclick/*, som Adobe är värd för och löser.Implementering av mobilappar mobile-implementation
I det här avsnittet beskrivs hur du implementerar mobila e-postlänkar med Adobe Journey Optimizer så att en enda URL kan:
- Öppna en specifik skärm i mobilappen när appen installeras, eller
- Öppna webbplatsen som en reserv när appen inte är installerad.
När länkspårning är aktiverat för ditt meddelande fortsätter Journey Optimizer att spåra dessa klick, inkludera dem i rapporter och kan använda dem i innehållsexperiment om du kör dem i meddelandet.
Det här avsnittet innehåller vanliga implementeringsmönster för deplinks. Din exakta konfiguration beror på apparkitekturen och routningsramverket.
iOS (Universal Links) ios-implementation
-
I Xcode väljer du ditt mål genom Signing & Capabilities > + Capability > Associated Domains.
-
Lägg till poster för dina delegerade underdomäner, till exempel:
code language-text applinks:www.mybusiness.com applinks:data.email.mybusiness.com -
Hantera universella länkar i appen och få den ursprungliga länken från svarshuvudet.
accordion Exempel: iOS 13+ med scener 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 } }
mclick-URL:en och läsa Location-rubriken, och sedan skicka den baserat på final -URL:en.mclick i Safari; som motverkar syftet med att fördärva.Android (App Links) android-implementation
-
Lägg till app Link-intent-filter i din Android-app.
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> -
Implementera hanteraren för djup länk.
accordion I 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 } }
mclick och använda rubriken Location för att fastställa det slutliga målet.followRedirects(false) så att du styr omdirigeringshantering och kan logga analyser korrekt om det behövs.Rekommenderade rutiner deeplink-best-practices
- Använd stabila sökvägar: Föredrar vägar som är resistenta mot ändringar i appanvändargränssnittet (till exempel
/account/ordersi stället för/tab/3/view/2). - Konto för spårade banor: När länkspårning är aktiverat kan den klickade länken använda spårade banmönster (till exempel
/ee/v1/mclick/). Kontrollera att routern kan tolka den slutliga URL:en efter att den spårade länken har lösts. - Håll parametrarna förutsägbara: Definiera ett konsekvent parameterschema (till exempel
?orderId=12345). - Undvik känsliga data i URL:er: Lägg inte in hemligheter eller personuppgifter direkt i URL:en för överordnad länk.
- Testa din överordnade länk: Skicka ett korrektur och klicka på länken till den enhet där appen är installerad.
- Validera på riktiga enheter: Universallänkar och beteenden för spårad länkupplösning är mer tillförlitliga att validera på fysiska enheter i stället för simulatorer.
- Verifiera routning på appsidan: Om länken inte öppnar den förväntade skärmen validerar du routningen på programsidan och URL-formatet (värd/sökväg/fråga och URL-kodning).
- Kom ihåg appinitiering: Beteendet Applänkar/universallänkar är mest tillförlitligt efter att appen har installerats och öppnats minst en gång.
Felsökning och vanliga frågor troubleshooting-faq
- Kontrollera att URL:en matchar värd- och sökvägsmönstren som appen är registrerad för att hantera, inklusive spårade klicksökvägar när länkspårning är aktiverat (till exempel sökvägar under
/ee/v1/mclick/). - För universallänkar för iOS och Android applänkar bekräftar du att domänassociationen (AASA /
assetlinks.json) är korrekt konfigurerad och nåbar. - Testa på en riktig enhet (simulatorer/emulatorer kan bete sig annorlunda för länkkoppling).
- Bekräfta att routern på programsidan tolkar URL-sökvägen/frågan korrekt.
- Kontrollera URL-kodning: reserverade tecken ska vara URL-kodade.
- Validera parameternamn och värden matchar vad routern förväntar sig.
- Om samma HTTPS-URL kan hanteras av din webbplats kan länken öppna en webbsida som en reserv när appen inte är installerad (konfigurera ditt webbmål och routning därefter).
-
Skapa ett korrektur med en deplänk, klicka på det på iOS- och Android-enheter (installerade och inte installerade scenarier).
-
Validera:
- Det slutgiltiga värdet för e-postlänken (värd/sökväg/fråga)
- Associationen på operativsystemnivå (om du använder universallänkar/applänkar)
- Resultatet för routning i appen
assetlinks.json-konfiguration för varje underdomän som ska ha stöd för funktionen.appname://path)?appname://path), men den rekommenderade metoden är en universell länk eller applänk (https://) som matchar den HTTPS-baserade inställningen i konfigurations- och implementeringsavsnitten på den här sidan.Location-huvudet när din app utför en GET på mclick URL:en, så att du kan använda dem för analys i appen./ee/v1/click/ URL:er?mclick-flöde som beskrivs på den här sidan.