Implementa Target con AEP Mobile SDK in un'app nativa con visualizzazioni Web

Questo articolo condivide le best practice per l'implementazione di Adobe Target in un'app mobile che utilizza codice nativo con visualizzazioni Web tramite Adobe Experience Platform Mobile SDK.

Questo articolo utilizza un'app iOS di esempio che utilizza l'integrazione Adobe Experience Platform Mobile SDK e Target scritta in Swift dall'archivio GitHub.

Nel mondo reale, è probabile che l’app aziendale utilizzi le visualizzazioni web nell’app mobile. Una visualizzazione web è un contenitore che carica una pagina web utilizzando un URL. Il contenitore è simile a una finestra del browser senza controlli. In iOS, il contenitore per la visualizzazione web funziona come un browser Safari durante l’elaborazione di pagine web.

Prerequisiti

Per iniziare a utilizzare Adobe Experience Platform Mobile SDK, è necessario eseguire alcune attività preliminari.

Per ulteriori informazioni, vedere Adobe Target nella documentazione di Adobe Experience Platform Mobile SDK.

Sincronizzare il codice nativo con le visualizzazioni web

Il problema quando si implementa Target in un'app nativa con visualizzazioni Web è che Adobe Experience Platform Mobile SDK ha già generato tutti gli identificatori necessari per il corretto funzionamento delle soluzioni Adobe. Tuttavia, gli identificatori non sono ancora visibili alle visualizzazioni web perché non si trovano nell’ambiente nativo della piattaforma. Pertanto, devi creare un ponte per trasmettere alcuni identificatori SDK alle visualizzazioni web in modo che l’identità del visitatore persista nell’ambiente web. In caso contrario, si verificheranno visite duplicate e questo influirà sulla generazione dei rapporti.

Fortunatamente, Adobe Experience Platform Mobile SDK fornisce un metodo pratico per generare Adobe parametri necessari affinché le visualizzazioni web possano utilizzare e mantenere per lo stesso visitatore, come illustrato nel seguente codice di esempio:

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)
  }
});

Per ulteriori informazioni sul metodo Identity.appendTo e per visualizzare un esempio di come utilizzare il metodo, vedere Swift > Esempio nella documentazione SDK per dispositivi mobili.

Utilizzando Identity.appendTo, questo URL:

https://vadymus.github.io/ateng/at-order-confirmation/index.html?a=1&b=2

si trasforma in:

https://vadymus.github.io/ateng/at-order-confirmation/index.html?a=1&b=2&adobe_mc=TS%3D1660667205%7CMCMID%3D69624092487065093697422606480535692677%7CMCORGID%3DEB9CAE8B56E003697F000101%40AdobeOrg

Come puoi vedere, è stato aggiunto il parametro adobe_mc all'URL. Questo parametro contiene valori codificati per:

  • TS=1660667205: il timestamp corrente. Questo timestamp assicura che la visualizzazione web non riceva valori scaduti.
  • MCMID=69624092487065093697422606480535692677: Experience Cloud ID (ECID). Anche noto come MID o Marketing Cloud ID richiesto per l'identificazione di Adobe visitatori tra soluzioni.
  • MCORGID=EB9CAE8B56E003697F000101@AdobeOrg: Adobe Organization ID.

Identity.getUrlVariables è un metodo Adobe Experience Platform Mobile SDK alternativo che restituisce una stringa con formato appropriato contenente le variabili URL Experience Cloud Identity Service. Per ulteriori informazioni, vedere getUrlVariables nel riferimento API identità.

Passa l'ID sessione Target per l'esperienza della stessa sessione

È necessario un ulteriore passaggio per consentire al percorso di utenti Target di funzionare senza problemi nelle visualizzazioni native e web. Questo passaggio include l'estrazione e il passaggio dell'ID sessione Target da Adobe Experience Platform Mobile SDK alle visualizzazioni Web dell'app mobile.

Target.getSessionId estrae l'ID sessione che può essere passato all'URL della visualizzazione Web come parametro mboxSession:

Target.getSessionId { (id, err) in
    // read Target sessionId
}

Eseguire il test nelle visualizzazioni web

I collegamenti di anteprima Web vengono generati nella pagina Activity detail facendo clic sul collegamento Adobe QA per visualizzare un popup per copiare ogni collegamento di anteprima esperienza, simile al seguente:

?at_preview_token=mhFIzJSF7JWb-RsnakpBqi_s83Sl64hZp928VWpkwvI&at_preview_index=1_1&at_preview_listed_activities_only=true

I collegamenti di anteprima Web contengono ulteriori at_preview_index e at_preview_listed_activities_only parametri. Copia questi parametri per creare collegamenti di anteprima facili da usare sui dispositivi mobili con parametri di collegamento web.

Ad esempio:

com.adobe.targetmobile://?at_preview_token=mhFIzJSF7JWb-RsnakpBqhBwj-TiIlZsRTx_1QQuiXLIJFdpSLeEZwKGPUyy57O_&at_preview_index=1_1&at_preview_listed_activities_only=true

Dopo aver aperto il collegamento in un browser iOS Safari, l'app acquisisce l'URL nella classe AppDelegate in modo simile all'esempio seguente:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
  print("url= \(String(describing: url.absoluteString))")
  //...

Ora che hai acquisito tutti i parametri necessari nell’app, puoi passarli al web quando necessario:

Identity.appendTo(url: URL(string: url), completion: {appendedURL, error in
  let urlWithWebPreviewLink = appendedURL + "&" + myPreviewLinkFromAppDelegate

L’output finale per il collegamento di visualizzazione web potrebbe essere simile al seguente:

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
recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3