Remplacer le SDK cible par le SDK d’optimisation

Découvrez comment remplacer les SDK Adobe Target par les SDK Optimize dans votre implémentation mobile. Un remplacement de base comprend les étapes suivantes :

  • Mettre à jour les dépendances dans votre fichier Podfile ou build.gradle
  • Mettre à jour les imports
  • Mettre à jour le code de l’application
INFO
Dans l’écosystème Adobe Experience Platform Mobile SDK, les extensions sont implémentées par des SDK importés dans vos applications, qui peuvent porter des noms différents :
  • Target SDK met en œuvre l’extension Adobe Target
  • Optimiser SDK implémente l’extension Offer Decisioning et Target

Mettre à jour les dépendances

Exemple Android

Optimisation de SDK

build.gradle des dépendances après la migration

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 Target

build.gradle les dépendances avant la migration

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'

+++

Exemple iOS
tabs
Optimisation de SDK

Podfile des dépendances après la migration

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 Target

Podfile les dépendances avant la migration

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'

Mise à jour des imports et du code

Exemple Android
tabs
Optimisation de SDK

Code d’initialisation Java après la migration

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 Target

Code d’initialisation Java avant la migration

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
Optimisation de SDK

Code d’initialisation rapide après la migration

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 Target

Code d’initialisation rapide avant la migration

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

Comparaison des API

De nombreuses API d’extension Target ont une approche équivalente utilisant l’extension Offer Decisioning et Target décrite dans le tableau ci-dessous. Pour plus d’informations sur les fonctions, consultez la référence de l’API .

Extension Target
Extension Offer Decisioning and Target
Notes
prefetchContent
updatePropositions
retrieveLocationContent
getPropositions
Lors de l’utilisation de l’API getPropositions, aucun appel à distance n’est effectué pour récupérer des portées non mises en cache dans le SDK.
displayLocations
Offre -> display()
En outre, generateDisplayInteractionXdm méthode Offre peut être utilisée pour générer le XDM pour l’affichage des articles. Par la suite, l’API sendEvent du SDK réseau Edge peut être utilisée pour joindre des données XDM à structure libre supplémentaires et envoyer un événement d’expérience à l’instance distante.
clickedLocation
Offre -> appuyé()
En outre, generateTapInteractionXdm méthode Offre peut être utilisée pour générer le fichier XDM pour l’appui sur l’élément. Par la suite, l’API sendEvent du SDK réseau Edge peut être utilisée pour joindre des données XDM à structure libre supplémentaires et envoyer un événement d’expérience à l’instance distante.
clearPrefetchCache
clearCachedPropositions
resetExperience
S.O.
Utilisez l’API removeIdentity de l’extension Identity for Edge Network pour SDK afin de cesser d’envoyer l’identifiant visiteur au réseau Edge. Pour plus d’informations, voir documentation de l’API removeIdentity.

Remarque : l’API resetIdentities de Mobile Core efface toutes les identités stockées dans le SDK, y compris l’Experience Cloud ID (ECID), et elle doit être utilisée avec parcimonie !
getSessionId
S.O.
state:store handle de réponse transfère les informations relatives à la session. L’extension de réseau Edge permet de le gérer en joignant des éléments de magasin d’état non expirés aux requêtes suivantes.
setSessionId
S.O.
state:store handle de réponse transfère les informations relatives à la session. L’extension de réseau Edge permet de le gérer en joignant des éléments de magasin d’état non expirés aux requêtes suivantes.
getThirdPartyId
S.O.
Utilisez l’API updateIdentities de l’extension Identity for Edge Network pour fournir la valeur de l’ID tiers. Configurez ensuite l’espace de noms d’ID tiers dans le flux de données. Pour plus d’informations, voir documentation mobile ID tiers de Target.
setThirdPartyId
S.O.
Utilisez l’API updateIdentities de l’extension Identity for Edge Network pour fournir la valeur de l’ID tiers. Configurez ensuite l’espace de noms d’ID tiers dans le flux de données. Pour plus d’informations, voir documentation mobile ID tiers de Target.
getTntId
S.O.
locationHint:result descripteur de réponse contient les informations relatives à l’indicateur d’emplacement cible. On suppose que Target Edge sera co-implanté avec Experience Edge.

L’extension de réseau Edge utilise l’indicateur d’emplacement EdgeNetwork pour déterminer le cluster réseau Edge auquel envoyer des requêtes. Pour partager l’indicateur d’emplacement réseau Edge sur plusieurs SDK (applications hybrides), utilisez les API getLocationHint et setLocationHint de l’extension Edge Network. Pour plus d’informations, voir documentation de l’API getLocationHint.
setTntId
S.O.
Le handle de réponse locationHint:result transfère les informations sur l’indicateur d’emplacement de Target. On suppose que Target Edge sera co-implanté avec Experience Edge.

L’extension de réseau Edge utilise l’indicateur d’emplacement EdgeNetwork pour déterminer le cluster réseau Edge auquel envoyer des requêtes. Pour partager l’indicateur d’emplacement réseau Edge sur plusieurs SDK (applications hybrides), utilisez les API getLocationHint et setLocationHint de l’extension Edge Network. Pour plus d’informations, voir documentation de l’API getLocationHint.

Ensuite, découvrez comment demander et effectuer le rendu des activités sur la page.

NOTE
Nous nous engageons à vous aider à réussir votre migration mobile de Target vers l’extension Offer Decisioning et Target. Si vous rencontrez des obstacles avec votre migration ou si vous pensez qu'il manque des informations essentielles dans ce guide, veuillez nous le faire savoir en postant dans cette discussion communautaire.
recommendation-more-help
23093022-70e6-46bf-81c6-76f79c282c9c