Recuperare le attività Target

Le implementazioni mobili di Target utilizzano mbox regionali (ora noti come "ambiti") per distribuire contenuti da attività che utilizzano il Compositore esperienza basato su moduli di Target. È necessario aggiornare l’app mobile per includere gli ambiti nelle chiamate di rete.

Il contenuto restituito da Target, noto anche come "offerte", in genere è costituito da testo o json che devi utilizzare nell’applicazione per riprodurre l’esperienza finale del cliente. Le offerte di Target vengono spesso utilizzate per:

  • Abilitare i flag di funzione nell’applicazione
  • Distribuisci testo o immagini alternativi

Se hai attività che devono essere eseguite sia nella versione di estensione Target che in quella di estensione Offer Decisioning e Target dell'applicazione, assicurati di eseguire il test completo. Se devi utilizzare offerte diverse per versioni diverse dell’app, puoi utilizzare le opzioni di targeting nell’interfaccia per distribuire offerte diverse alle diverse versioni.

Assicurati sempre di includere la gestione degli errori per visualizzare le esperienze appropriate in condizioni di errore.

Richiedere e applicare contenuti su richiesta

IMPORTANT
Dopo aver applicato il contenuto all'app, è fondamentale attivare l'API displayed per comunicare a Target che il visitatore ha visto il contenuto alternativo o predefinito specificato nell'attività. Per ulteriori dettagli, consulta la pagina Traccia eventi di conversione Target.
Esempio di Android
tabs
Ottimizza SDK
code language-java
// Mboxes for Target activities
final DecisionScope decisionScope1 = DecisionScope("myTargetMbox1");
final DecisionScope decisionScope2 = new DecisionScope("myTargetMbox2");

final List<DecisionScope> decisionScopes = new ArrayList<>();
decisionScopes.add(decisionScope1);
decisionScopes.add(decisionScope2);

// Prefetch the Target mboxes
Optimize.updatePropositions(decisionScopes,
                            new HashMap<String, Object>() {
                                {
                                    put("xdmKey", "xdmValue");
                                }
                            },
                            new HashMap<String, Object>() {
                                {
                                    put("dataKey", "dataValue");
                                }
                            },
                            new AdobeCallbackWithOptimizeError<Map<DecisionScope, OptimizeProposition>>() {
                                @Override
                                public void fail(AEPOptimizeError optimizeError) {
                                    // Log in case of error
                                    Log.d("Target Prefetch error", optimizeError.title);
                                }

                                @Override
                                public void call(Map<DecisionScope, OptimizeProposition> propositionsMap) {
                                    // Retrieve cached propositions if prefetch succeeds
                                    Optimize.getPropositions(scopes, new AdobeCallbackWithError<Map<DecisionScope, OptimizeProposition>>() {
                                        @Override
                                      public void fail(final AdobeError adobeError) {
                                              // handle error
                                        }

                                        @Override
                                        public void call(Map<DecisionScope, OptimizeProposition> propositionsMap) {
                                              if (propositionsMap != null && !propositionsMap.isEmpty()) {
                                                // get the propositions for the given decision scopes
                                                if (propositionsMap.contains(decisionScope1)) {
                                                      final OptimizeProposition proposition1 = propsMap.get(decisionScope1)
                                                      // read proposition1 offers and display them
                                                }
                                                if (propositionsMap.contains(decisionScope2)) {
                                                      final OptimizeProposition proposition2 = propsMap.get(decisionScope2)
                                                      // read proposition2 offers and display them
                                                }
                                              }
                                        }
                                      });
                                }
                            });
Esempio di iOS
tabs
Ottimizza SDK
code language-swift
// Mboxes for Target activities
let decisionScope1 = DecisionScope(name: "myTargetMbox1")
let decisionScope2 = DecisionScope(name: "myTargetMbox2")

// Prefetch the Target mboxes
Optimize.updatePropositions(for: [decisionScope1, decisionScope2]
                            withXdm: ["xdmKey": "xdmValue"]
                            andData: ["dataKey": "dataValue"]) { data, error in
            if let error = error as? AEPOptimizeError {
                // handle error
                return
            }
            // Retrieve cached propositions if prefetch succeeds
            Optimize.getPropositions(for: [decisionScope1, decisionScope2]) { propositionsDict, error in
                if let error = error {
                    // handle error
                    return
                }

                if let propositionsDict = propositionsDict {
                    // get the propositions for the given decision scopes

                    if let proposition1 = propositionsDict[decisionScope1] {
                        // read proposition1 offers and display them
                    }

                    if let proposition2 = propositionsDict[decisionScope2] {
                        // read proposition2 offers and display them
                    }
                }
            }
        }

Successivamente, scopri come passare i parametri di Target utilizzando l'estensione di Offer Decisioning e Target.

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