Sostituire il SDK di Target con il SDK di ottimizzazione

Scopri come sostituire gli SDK di Adobe Target con gli SDK di ottimizzazione nell’implementazione mobile. Una sostituzione di base è costituita dai seguenti passaggi:

  • Aggiornare le dipendenze nel Podfile o nel file build.gradle
  • Aggiorna importazioni
  • Aggiorna codice applicazione
INFO
Nell’ecosistema di Adobe Experience Platform Mobile SDK, le estensioni vengono implementate dagli SDK importati nelle applicazioni che possono avere nomi diversi:
  • Target SDK implementa l'estensione Adobe Target
  • Ottimizza SDK implementa l'estensione Offer Decisioning e Target

Aggiorna dipendenze

Esempio di Android
tabs
Ottimizza SDK

build.gradle dipendenze dopo la migrazione

code language-java
implementation platform('com.adobe.marketing.mobile:sdk-bom:3.+')
implementation 'com.adobe.marketing.mobile:core'
implementation 'com.adobe.marketing.mobile:edgeidentity'
implementation 'com.adobe.marketing.mobile:edge'
implementation 'com.adobe.marketing.mobile:optimize'
SDK di destinazione

build.gradle dipendenze prima della migrazione

code language-java
implementation platform('com.adobe.marketing.mobile:sdk-bom:3.+')
implementation 'com.adobe.marketing.mobile:analytics'
implementation 'com.adobe.marketing.mobile:target'
implementation 'com.adobe.marketing.mobile:core'
implementation 'com.adobe.marketing.mobile:identity'
implementation 'com.adobe.marketing.mobile:lifecycle'
implementation 'com.adobe.marketing.mobile:signal'
implementation 'com.adobe.marketing.mobile:userprofile'
Esempio di iOS
tabs
Ottimizza SDK

Podfile dipendenze dopo la migrazione

code language-swift
use_frameworks!
target 'YourAppTarget' do
    pod 'AEPCore', '~> 5.0'
    pod 'AEPEdge', '~> 5.0'
    pod 'AEPEdgeIdentity', '~> 5.0'
    pod 'AEPOptimize', '~> 5.0'
end
SDK di destinazione

Podfile dipendenze prima della migrazione

code language-swift
use_frameworks!
pod 'AEPAnalytics', '~> 5.0'
pod 'AEPTarget', '~> 5.0'
pod 'AEPCore', '~> 5.0'
pod 'AEPIdentity', '~> 5.0'
pod 'AEPSignal', '~>5.0'
pod 'AEPLifecycle', '~>5.0'
pod 'AEPUserProfile', '~> 5.0'

Aggiorna importazioni e codice

Esempio di Android
tabs
Ottimizza SDK

Codice di inizializzazione Java dopo la migrazione

code language-java
import com.adobe.marketing.mobile.MobileCore;
import com.adobe.marketing.mobile.Edge;
import com.adobe.marketing.mobile.edge.identity.Identity;
import com.adobe.marketing.mobile.optimize.Optimize;
import com.adobe.marketing.mobile.AdobeCallback;

public class MainApp extends Application {

  private final String ENVIRONMENT_FILE_ID = "YOUR_APP_ENVIRONMENT_ID";

    @Override
    public void onCreate() {
        super.onCreate();

        MobileCore.setApplication(this);
        MobileCore.configureWithAppID(ENVIRONMENT_FILE_ID);

        MobileCore.registerExtensions(
            Arrays.asList(Edge.EXTENSION, Identity.EXTENSION, Optimize.EXTENSION),
            o -> Log.d("MainApp", "Offer Decisioning and Target Mobile SDK was initialized.")
        );
    }
}
SDK di destinazione

Codice di inizializzazione Java prima della migrazione

code language-java
import com.adobe.marketing.mobile.AdobeCallback;
import com.adobe.marketing.mobile.Analytics;
import com.adobe.marketing.mobile.Extension;
import com.adobe.marketing.mobile.Identity;
import com.adobe.marketing.mobile.Lifecycle;
import com.adobe.marketing.mobile.LoggingMode;
import com.adobe.marketing.mobile.MobileCore;
import com.adobe.marketing.mobile.Signal;
import com.adobe.marketing.mobile.Target;
import com.adobe.marketing.mobile.UserProfile;
import java.util.Arrays;
import java.util.List;
...
import android.app.Application;
...
public class MainApp extends Application {
...
    @Override
    public void onCreate() {
        super.onCreate();
        MobileCore.setApplication(this);
        MobileCore.setLogLevel(LoggingMode.DEBUG);
        ...
        List<Class<? extends Extension>> extensions = Arrays.asList(
            Analytics.EXTENSION,
            Target.EXTENSION,
            Identity.EXTENSION,
            Lifecycle.EXTENSION,
            Signal.EXTENSION,
            UserProfile.EXTENSION
        );


        MobileCore.registerExtensions(extensions, new AdobeCallback () {
            @Override
            public void call(Object o) {
                MobileCore.configureWithAppID(<Environment File ID>);
            }
        });
    }
}
iOS
tabs
Ottimizza SDK

Codice di inizializzazione Swift dopo la migrazione

code language-swift
import AEPCore
import AEPEdge
import AEPEdgeIdentity
import AEPOptimize

@UIApplicationMain
final class AppDelegate: UIResponder, UIApplicationDelegate {
  var window: UIWindow?

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {

      // register the extensions
      MobileCore.registerExtensions([Edge.self, AEPEdgeIdentity.Identity.self, Optimize.self]) {
        MobileCore.configureWith(appId: <YOUR_ENVIRONMENT_FILE_ID>) // Replace <YOUR_ENVIRONMENT_FILE_ID> with a String containing your own ID.
      }

      return true
  }
}
SDK di destinazione

Codice di inizializzazione Swift prima della migrazione

code language-swift
import AEPCore
import AEPAnalytics
import AEPTarget
import AEPIdentity
import AEPLifecycle
import AEPSignal
import AEPServices
import AEPUserProfile
...
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        MobileCore.setLogLevel(.debug)
        let appState = application.applicationState
        ...
        let extensions = [
            Analytics.self,
            Target.self,
            Identity.self,
            Lifecycle.self,
            Signal.self,
            UserProfile.self
        ]
        MobileCore.registerExtensions(extensions, {
        MobileCore.configureWith(<Environment File ID>)
        if appState != .background {
            MobileCore.lifecycleStart(additionalContextData: ["contextDataKey": "contextDataVal"])
            }
        })
        ...
        return true
    }
}

Confronto delle API

Molte API di estensione di Target hanno un approccio equivalente che utilizza l’estensione di Offer Decisioning e Target descritta nella tabella seguente. Per ulteriori dettagli sulle funzioni, consulta il riferimento API.

Estensione Target
Estensione Offer Decisioning e Target
Note
prefetchContent
aggiornaProposte
retrieveLocationContent
getPropositions
Quando si utilizza l'API getPropositions, non viene effettuata alcuna chiamata remota per recuperare ambiti non memorizzati in cache in SDK.
percorsi visualizzati
Offerta -> visualizzata()
È inoltre possibile utilizzare il metodo di offerta generateDisplayInteractionXdm per generare XDM per la visualizzazione degli elementi. Successivamente, l’API sendEvent della rete Edge SDK può essere utilizzata per allegare dati XDM aggiuntivi in formato libero e inviare un evento esperienza al remoto.
posizione selezionata
Offerta -> tapped()
Inoltre, è possibile utilizzare il metodo di offerta generateTapInteractionXdm per generare XDM per il tocco dell'elemento. Successivamente, l’API sendEvent della rete Edge SDK può essere utilizzata per allegare dati XDM aggiuntivi in formato libero e inviare un evento esperienza al remoto.
clearPrefetchCache
clearCachedPropositions
ripristinaEsperienza
n/d
Utilizza l'API removeIdentity dall'estensione Identity for Edge Network per SDK per interrompere l'invio dell'identificatore visitatore alla rete Edge. Per ulteriori dettagli, consulta la documentazione dell'API removeIdentity.

Nota: l'API resetIdentities del core mobile cancella tutte le identità memorizzate in SDK, incluso l'Experience Cloud ID (ECID), e dovrebbe essere utilizzata con moderazione.
getSessionId
n/d
L'handle di risposta state:store contiene informazioni relative alla sessione. L’estensione di rete Edge consente di gestirla allegando elementi dell’archivio di stato non scaduti alle richieste successive.
setSessionId
n/d
L'handle di risposta state:store contiene informazioni relative alla sessione. L’estensione di rete Edge consente di gestirla allegando elementi dell’archivio di stato non scaduti alle richieste successive.
getThirdPartyId
n/d
Utilizza l’API updateIdentities dall’estensione Identity for Edge Network per fornire il valore dell’ID di terze parti. Quindi, configura lo spazio dei nomi ID di terze parti nello stream di dati. Per ulteriori dettagli, consulta la documentazione mobile sull'ID di terze parti di Target.
setThirdPartyId
n/d
Utilizza l’API updateIdentities dall’estensione Identity for Edge Network per fornire il valore dell’ID di terze parti. Quindi, configura lo spazio dei nomi ID di terze parti nello stream di dati. Per ulteriori dettagli, consulta la documentazione mobile sull'ID di terze parti di Target.
getTntId
n/d
L'handle di risposta locationHint:result contiene le informazioni dell'hint di posizione di destinazione. Si presume che Target Edge sarà posizionato in modo congiunto con Experience Edge.

L'estensione di rete Edge utilizza l'hint di posizione EdgeNetwork per determinare il cluster di rete Edge a cui inviare le richieste. Per condividere l'hint di posizione di rete Edge tra gli SDK (app ibride), utilizza le API getLocationHint e setLocationHint dell'estensione Edge Network. Per ulteriori dettagli, consulta la documentazione dell'API getLocationHint.
setTntId
n/d
L'handle di risposta locationHint:result contiene le informazioni dell'hint di posizione di destinazione. Si presume che Target Edge sarà posizionato in modo congiunto con Experience Edge.

L'estensione di rete Edge utilizza l'hint di posizione EdgeNetwork per determinare il cluster di rete Edge a cui inviare le richieste. Per condividere l'hint di posizione di rete Edge tra gli SDK (app ibride), utilizza le API getLocationHint e setLocationHint dell'estensione Edge Network. Per ulteriori dettagli, consulta la documentazione dell'API getLocationHint.

Quindi, scopri come richiedere ed eseguire il rendering delle attività sulla pagina.

NOTE
Ci impegniamo ad aiutarti con la migrazione di Target per dispositivi mobili dall’estensione Target all’estensione Offer Decisioning e Target. Se incontri ostacoli con la migrazione o pensi che in questa guida manchino informazioni critiche, inviaci questa discussione della community.
recommendation-more-help
23093022-70e6-46bf-81c6-76f79c282c9c