Estensione Experience Rollout per Android android-extension-integration-guide
Questa guida descrive come integrare l’estensione Experience Rollout con Adobe Experience Platform Mobile SDK su Android.
Prerequisiti prerequisites
Prima di implementare l’estensione Experience Rollout, assicurati di disporre di:
- Una proprietà mobile configurata in Raccolta dati di Adobe Experience Platform
- L'estensione Experience Rollout installata e configurata nella proprietà mobile
- Un ID organizzazione Adobe Experience Cloud
- SDK minimo: API 21 (Android 5.0 Lollipop)
Dipendenze delle estensioni extension-dependencies
L’estensione Experience Rollout richiede le seguenti estensioni Adobe Experience Platform:
Assicurati che queste estensioni siano installate nella proprietà mobile di Data Collection e incluse nelle dipendenze dell’app.
Configurare l’estensione Experience Rollout in Raccolta dati configure
Installare l’estensione install-extension
-
Accedi a Raccolta dati Adobe Experience Platform.
-
Seleziona la scheda Tag e scegli la tua proprietà mobile.
-
Passa a Estensioni > Catalogo.
-
Cerca l'estensione di rollout esperienza e seleziona Installa.
-
Configura le impostazioni dell'estensione:
table 0-row-2 1-row-2 2-row-2 3-row-2 Impostazione Descrizione Sandbox La sandbox di Adobe Experience Platform contenente la configurazione di Rollout esperienza ID applicazione Un identificatore univoco per l’applicazione in Experience Rollout ID set di dati ID del set di dati di Adobe Experience Platform per i dati dell’evento di analisi -
Seleziona Salva.
-
Segui il processo di pubblicazione per aggiornare la configurazione.
Ottieni l’ID del file di ambiente environment-file-id
- Nella tua proprietà mobile, passa a Ambienti.
- Seleziona l'icona della casella nella colonna Installa dell'ambiente.
- Nella finestra di dialogo Istruzioni di installazione per dispositivi mobili, copia ID file ambiente.
Aggiungere l’estensione Experience Rollout all’app add-to-app
Aggiungi dipendenze add-dependencies
Aggiungi le dipendenze di Mobile SDK al progetto. L'estensione Experience Rollout richiede Mobile Core e le estensioni relative ad Edge elencate di seguito.
Utilizzo di Gradle con DBA (scelta consigliata) gradle-bom
Aggiungi le dipendenze seguenti al file build.gradle.kts dell'app:
dependencies {
// Adobe Experience Platform Mobile SDK BOM
implementation(platform("com.adobe.marketing.mobile:sdk-bom:3.+"))
// Required extensions
implementation("com.adobe.marketing.mobile:core")
implementation("com.adobe.marketing.mobile:lifecycle")
implementation("com.adobe.marketing.mobile:edge")
implementation("com.adobe.marketing.mobile:edgeidentity")
// Experience Rollout extension
implementation("com.adobe.marketing.mobile:rollout")
}
Utilizzo di Gradle (Groovy) gradle-groovy
dependencies {
// Adobe Experience Platform Mobile SDK BOM
implementation platform('com.adobe.marketing.mobile:sdk-bom:3.+')
// Required extensions
implementation 'com.adobe.marketing.mobile:core'
implementation 'com.adobe.marketing.mobile:lifecycle'
implementation 'com.adobe.marketing.mobile:edge'
implementation 'com.adobe.marketing.mobile:edgeidentity'
// Experience Rollout extension
implementation 'com.adobe.marketing.mobile:rollout'
}
Aggiungere autorizzazioni add-permissions
Aggiungi le seguenti autorizzazioni al file AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Inizializzare SDK initialize-sdk
Inizializza Mobile SDK nella classe Application prima di chiamare qualsiasi API di estensione Experience Rollout. Utilizza l'ID file dell'ambiente dalla tua proprietà mobile con MobileCore.initialize in modo che l'app selezioni le impostazioni di rollout pubblicate in Raccolta dati.
Utilizzo di MobileCore.initialize mobile-core-initialize
Disponibile a partire dalla versione DBA di Android 3.8.0, questa API registra automaticamente le estensioni e abilita il tracciamento del ciclo di vita.
LoggingMode.ERROR. Non utilizzare DEBUG o VERBOSE nelle build delle versioni.Cotlino
import android.app.Application
import com.adobe.marketing.mobile.LoggingMode
import com.adobe.marketing.mobile.MobileCore
class MainApplication : Application() {
override fun onCreate() {
super.onCreate()
MobileCore.setLogLevel(LoggingMode.ERROR)
// Initialize with your Environment File ID from Data Collection
MobileCore.initialize(this, "YOUR_ENVIRONMENT_FILE_ID")
}
}
Java
import android.app.Application;
import com.adobe.marketing.mobile.LoggingMode;
import com.adobe.marketing.mobile.MobileCore;
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
MobileCore.setLogLevel(LoggingMode.ERROR);
// Initialize with your Environment File ID from Data Collection
MobileCore.initialize(this, "YOUR_ENVIRONMENT_FILE_ID", null);
}
}
Registrare la classe Application register-application
Registra la classe Application in AndroidManifest.xml:
<application
android:name=".MainApplication"
... >
</application>
Contesto di valutazione evaluation-context
FeatureEvaluationContext include attributi di targeting (utilizzati per la corrispondenza delle regole di rollout) e identità facoltativa (utilizzati per Analytics).
withIdentity(namespace, id)withAttributes(map)Map<String, List<String>>. Chiave è il nome dell'attributo di contesto utilizzato dalle regole di rollout (ad esempio locale, platform, appVersion, deviceType). Valore è l'elenco dei valori degli attributi candidati per la chiave per l'utente/sessione corrente (ad esempio ["en_US"] o ["phone"]).Cotlino
import com.adobe.marketing.mobile.rollout.FeatureEvaluationContext
val attrs = mapOf(
"locale" to listOf("en_US"),
"platform" to listOf("ANDROID"),
"appVersion" to listOf("3.0.0")
)
val ctx = FeatureEvaluationContext.builder()
.withIdentity("Email", "customer@example.com")
.withAttributes(attrs)
.build()
Java
import com.adobe.marketing.mobile.rollout.FeatureEvaluationContext;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Map<String, List<String>> attrs = new HashMap<>();
attrs.put("locale", Arrays.asList("en_US"));
attrs.put("platform", Arrays.asList("ANDROID"));
attrs.put("appVersion", Arrays.asList("3.0.0"));
FeatureEvaluationContext ctx = FeatureEvaluationContext.builder()
.withIdentity("Email", "customer@example.com")
.withAttributes(attrs)
.build();
Attributi di targeting di esempio sample-attributes
locale["en_US"], ["fr_FR"]platform["ANDROID"]appVersion["3.0.0"]deviceType["phone"], ["tablet"]Documentazione delle API api-reference
isFeatureEnabled is-feature-enabled
isFeatureEnabled restituisce se una funzione di rollout esperienza è attiva o disattivata per il contesto specificato. Passa featureKey, un FeatureEvaluationContext (attributi di targeting facoltativi e identità facoltativa per Analytics) e un callback. Vedi Contesto di valutazione.
Firma
Cotlino
Rollout.isFeatureEnabled(
featureKey: String,
evaluationContext: FeatureEvaluationContext,
callback: AdobeCallback<Boolean>
)
Java
Rollout.isFeatureEnabled(
String featureKey,
FeatureEvaluationContext evaluationContext,
AdobeCallback<Boolean> callback);
Parametri
featureKeyevaluationContextFeatureEvaluationContext.builder().build() per un contesto vuoto. Vedi Contesto di valutazione.callbacktrue se la funzionalità è abilitata, false in caso contrario. È inoltre possibile passare AdobeCallbackWithError<Boolean> per gestire fail(...).Esempi
Cotlino
import com.adobe.marketing.mobile.AdobeCallback
import com.adobe.marketing.mobile.rollout.Rollout
Rollout.isFeatureEnabled(
"new-checkout-experience",
ctx,
object : AdobeCallback<Boolean> {
override fun call(isEnabled: Boolean?) {
if (isEnabled == true) {
showNewCheckout()
} else {
showDefaultCheckout()
}
}
}
)
Java
import com.adobe.marketing.mobile.AdobeCallback;
import com.adobe.marketing.mobile.rollout.Rollout;
Rollout.isFeatureEnabled(
"new-checkout-experience",
ctx,
new AdobeCallback<Boolean>() {
@Override
public void call(Boolean isEnabled) {
if (Boolean.TRUE.equals(isEnabled)) {
showNewCheckout();
} else {
showDefaultCheckout();
}
}
}
);
getFeature get-feature
getFeature restituisce il payload della funzionalità valutata per il contesto specificato. Utilizza questa API quando hai bisogno di più di abilitato/disabilitato e desideri metadati o valori di funzionalità.
Firma
Cotlino
Rollout.getFeature(
featureKey: String,
evaluationContext: FeatureEvaluationContext,
callback: AdobeCallback<FeatureEvaluationResult>
)
Java
Rollout.getFeature(
String featureKey,
FeatureEvaluationContext evaluationContext,
AdobeCallback<FeatureEvaluationResult> callback);
Parametri
featureKeyevaluationContextFeatureEvaluationContext.builder().build() per un contesto vuoto. Vedi Contesto di valutazione.callbacknull quando la funzionalità non viene trovata. È inoltre possibile passare AdobeCallbackWithError<FeatureEvaluationResult> per gestire fail(...).Risposta
RisultatoValutazioneFunzionalità
idkeyreleaseKeymetaanalyticsParamAnalyticsParam
releaseIdfeatureIdvariantIdEsempi
Cotlino
import com.adobe.marketing.mobile.AdobeCallback
import com.adobe.marketing.mobile.rollout.FeatureEvaluationResult
import com.adobe.marketing.mobile.rollout.Rollout
Rollout.getFeature(
"new-checkout-experience",
ctx,
object : AdobeCallback<FeatureEvaluationResult> {
override fun call(feature: FeatureEvaluationResult?) {
val meta = feature?.meta
if (!meta.isNullOrEmpty()) {
applyMetaDrivenExperience(meta)
} else {
showFallbackExperience()
}
}
}
)
Java
import com.adobe.marketing.mobile.AdobeCallback;
import com.adobe.marketing.mobile.rollout.FeatureEvaluationResult;
import com.adobe.marketing.mobile.rollout.Rollout;
Rollout.getFeature(
"new-checkout-experience",
ctx,
new AdobeCallback<FeatureEvaluationResult>() {
@Override
public void call(FeatureEvaluationResult feature) {
String meta = feature != null ? feature.getMeta() : null;
if (meta != null && !meta.isEmpty()) {
applyMetaDrivenExperience(meta);
} else {
showFallbackExperience();
}
}
}
);
refreshCache refresh-cache
Per impostazione predefinita, l’estensione Rollout esperienza sincronizza regolarmente le regole e le funzionalità di rollout più recenti dal server in base a una pianificazione che puoi configurare. Se è necessario un aggiornamento prima della successiva sincronizzazione pianificata, chiamare refreshCache per forzare un aggiornamento. I casi tipici includono dopo l’accesso o quando lo stato dell’app cambia in un modo che dovrebbe influenzare il targeting.
Sintassi
Cotlino
Rollout.refreshCache()
Java
Rollout.refreshCache();
extensionVersion extension-version
Restituisce la stringa della versione dell'estensione Experience Rollout.
Sintassi
Rollout.extensionVersion(): String
Esempio
Cotlino
val version = Rollout.extensionVersion()
Java
String version = Rollout.extensionVersion();
Riepilogo API api-summary
isFeatureEnabled(featureKey, evaluationContext, callback). FeatureEvaluationContext contiene attributi di targeting per le regole e identità facoltativa per analytics. Consulta Valutazione delle funzionalità.getFeature(featureKey, evaluationContext, callback). Restituisce il payload della funzione valutato per il contesto specificato. Vedi getFeature.refreshCache()extensionVersion()