Implementeren Target met de AEP Mobile SDK in een native app met webweergaven
- Onderwerpen:
- Mobile implementeren
Gemaakt voor:
- Ontwikkelaar
In dit artikel worden de beste praktijken voor de implementatie van Adobe Target in een mobiele toepassing die native code gebruikt met webweergaven die de Adobe Experience Platform Mobile SDK.
In dit artikel wordt een voorbeeld van een iOS-toepassing gebruikt met de Adobe Experience Platform Mobile SDK and a Target integration written in Swift from the GitHub repository.
In de echte wereld gebruikt uw onderneming-app waarschijnlijk webweergaven in uw mobiele app. Een webweergave is een container die een webpagina laadt met een URL. De container is vergelijkbaar met een browservenster zonder besturingselementen. In iOS werkt de webweergavecontainer als een Safari-browser bij het verwerken van webpagina's.
Vereisten
Ga als volgt te werk: Adobe Experience Platform Mobile SDK, moet u bepaalde taken uitvoeren die aan de voorwaarde voldoen.
Zie voor meer informatie Adobe Target in the Adobe Experience Platform Mobile SDK documentatie.
Native code synchroniseren met webweergaven
De uitdaging bij de implementatie Target in een native app met webweergaven is het zo dat Adobe Experience Platform Mobile SDK al alle vereiste id's heeft gegenereerd voor Adobe oplossingen die naadloos werken. De id's zijn echter nog niet zichtbaar voor de webweergaven omdat deze id's zich niet in de native platformomgeving bevinden. Daarom moet u een brug tot stand brengen om sommige herkenningstekens van SDK tot de Webmeningen over te gaan zodat de bezoekersidentiteit in het Webmilieu voortduurt. Als u dit niet doet, worden er dubbele bezoeken afgelegd, wat van invloed is op uw rapportage.
Gelukkig Adobe Experience Platform Mobile SDK biedt een handige methode om te genereren Adobe parameters die vereist zijn voor webweergaven om te gebruiken en door te gaan voor dezelfde bezoeker, zoals getoond in de volgende voorbeeldcode:
Identity.appendTo(url: URL(string: url), completion: {appendedURL, error in
print("appendedURL \(String(describing: appendedURL))")
// load the url with ECID on the main thread
DispatchQueue.main.async {
let request = NSMutableURLRequest(url: appendedURL!)
self.webView.load(request as URLRequest)
}
});
Voor meer informatie over de Identity.appendTo
en om een voorbeeld te zien van hoe u de methode kunt gebruiken, raadpleegt u Swift > Voorbeeld in de Mobiele SDK-documentatie.
Gebruiken Identity.appendTo
, deze URL:
https://vadymus.github.io/ateng/at-order-confirmation/index.html?a=1&b=2
transformeert naar:
https://vadymus.github.io/ateng/at-order-confirmation/index.html?a=1&b=2&adobe_mc=TS%3D1660667205%7CMCMID%3D69624092487065093697422606480535692677%7CMCORGID%3DEB9CAE8B56E003697F000101%40AdobeOrg
Zoals u kunt zien, is er adobe_mc
parameter toegevoegd aan de URL. Deze parameter bevat gecodeerde waarden voor:
- TS=1660667205: Het huidige tijdstempel. Dit tijdstempel zorgt ervoor dat de webweergave geen verlopen waarden ontvangt.
- MCMID=69624092487065093697422606480535692677: De Experience Cloud ID (ECID). Ook bekend als MID of Marketing Cloud ID vereist voor Adobe identificatie van bezoekers voor verschillende oplossingen.
- MCORGID=EB9CAE8B56E003697F000101@AdobeOrg: De Adobe Organization ID.
De Identity.getUrlVariables
is een alternatief Adobe Experience Platform Mobile SDK methode die een correct gevormde koord terugkeert dat bevat Experience Cloud Identity Service URL-variabelen. Zie voor meer informatie getUrlVariables in de IdentiteitAPI-naslaggids.
Geef de Target Sessie-id voor ervaringen van dezelfde sessie
Er is één extra stap nodig om het Target de reis van de gebruiker werkt naadloos over de inheemse en Webmeningen. Deze stap omvat het extraheren en passeren van de Target Sessie-id van de Adobe Experience Platform Mobile SDK in de webweergaven van de mobiele app.
De Target.getSessionId
extraheert de sessie-id die als een mboxSession
parameter:
Target.getSessionId { (id, err) in
// read Target sessionId
}
Testen in de webweergaven
Webvoorvertoningskoppelingen worden gegenereerd op het tabblad Activity detail pagina door op de knop Adobe QA link om een pop-up weer te geven om elke koppeling van de ervaringsvoorvertoning te kopiëren, vergelijkbaar met het volgende:
?at_preview_token=mhFIzJSF7JWb-RsnakpBqi_s83Sl64hZp928VWpkwvI&at_preview_index=1_1&at_preview_listed_activities_only=true
Webvoorvertoningskoppelingen bevatten aanvullende at_preview_index
en at_preview_listed_activities_only
parameters. Kopieer deze parameters om mobiele, gebruiksvriendelijke voorvertoningskoppelingen te maken met weblink-parameters.
Bijvoorbeeld:
com.adobe.targetmobile://?at_preview_token=mhFIzJSF7JWb-RsnakpBqhBwj-TiIlZsRTx_1QQuiXLIJFdpSLeEZwKGPUyy57O_&at_preview_index=1_1&at_preview_listed_activities_only=true
Nadat u de koppeling hebt geopend in een iOS Safari-browser, legt uw app de URL vast in uw AppDelegate
klasse vergelijkbaar met het volgende voorbeeld:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
print("url= \(String(describing: url.absoluteString))")
//...
Nu u alle vereiste parameters in de app hebt vastgelegd, kunt u ze indien nodig aan het web doorgeven:
Identity.appendTo(url: URL(string: url), completion: {appendedURL, error in
let urlWithWebPreviewLink = appendedURL + "&" + myPreviewLinkFromAppDelegate
De uiteindelijke uitvoer voor de webweergavekoppeling kan er als volgt uitzien:
https://vadymus.github.io/ateng/at-order-confirmation/index.html?a=1&b=2&adobe_mc=TS%3D1660667205%7CMCMID%3D69624092487065093697422606480535692677%7CMCORGID%3DEB9CAE8B56E003697F000101%40AdobeOrg&at_preview_token=mhFIzJSF7JWb-RsnakpBqi_s83Sl64hZp928VWpkwvI&at_preview_index=1_1&at_preview_listed_activities_only=true