Feature Flag
Produktverantwortliche für Mobile Apps benötigen die Flexibilität, neue Funktionen in ihrer App bereitzustellen, ohne in mehrere App-Versionen investieren zu müssen. Möglicherweise möchten sie auch Funktionen schrittweise auf einen Prozentsatz der Benutzerbasis ausweiten, um die Effektivität zu testen. Adobe Target kann verwendet werden, um mit UX-Funktionen wie Farbe, Kopie, Schaltflächen, Text und Bildern zu experimentieren und diese Funktionen für bestimmte Zielgruppen bereitzustellen.
In dieser Lektion erstellen wir ein Angebot mit einer „Feature Flag“, das als Trigger verwendet werden kann, um bestimmte App-Funktionen zu aktivieren.
Lernziele
Am Ende dieser Lektion haben Sie folgende Möglichkeiten:
- Hinzufügen eines neuen Speicherorts zur Batch-Vorabrufanfrage
- Erstellen einer Target Aktivität mit einem Angebot, das als Feature Flag verwendet wird
- Laden und Validieren des Feature Flag-Angebots in der App
Hinzufügen eines neuen Speicherorts zur Vorabruf-Anfrage an die Startseiten-Aktivität
In der Demo-App aus unseren vorherigen Lektionen fügen wir der Vorabruf-Anfrage in der Startseiten-Aktivität einen neuen Speicherort namens „travel_feature_flag_recs“ hinzu und laden ihn mit einer neuen Java-Methode auf den Bildschirm.
Überprüfen Sie zunächst, ob die Konstante wetravel_feature_flag_recs in der Datei Constant.java hinzugefügt wird:
Hier ist der Code:
public static final String wetravel_feature_flag_recs = "wetravel_feature_flag_recs";
Fügen Sie nun den Speicherort zur Vorabruf-Anfrage hinzu und laden Sie eine neue Funktion namens processFeatureFlags()
:
Hier finden Sie den vollständigen aktualisierten Code:
public void targetPrefetchContent() {
List<TargetPrefetchObject> prefetchList = new ArrayList<>();
Map<String, Object> params1;
params1 = new HashMap<String, Object>();
params1.put("at_property", "7962ac68-17db-1579-408f-9556feccb477");
prefetchList.add(Target.createTargetPrefetchObject(Constant.wetravel_engage_home, params1));
prefetchList.add(Target.createTargetPrefetchObject(Constant.wetravel_engage_search, params1));
prefetchList.add(Target.createTargetPrefetchObject(Constant.wetravel_feature_flag_recs, params1));
Target.TargetCallback<Boolean> prefetchStatusCallback = new Target.TargetCallback<Boolean>() {
@Override
public void call(final Boolean status) {
HomeActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
String cachingStatus = status ? "YES" : "NO";
System.out.println("Received Response from prefetch : " + cachingStatus);
engageMessage();
processFeatureFlags();
setUp();
}
});
}};
Target.prefetchContent(prefetchList, null, prefetchStatusCallback);
}
public void processFeatureFlags() {
Target.loadRequest(Constant.wetravel_feature_flag_recs, "", null, null, null,
new Target.TargetCallback<String>(){
@Override
public void call(final String s) {
runOnUiThread(new Runnable() {
@Override
public void run() {
System.out.println("Feature Flags : " + s);
if(s != null && !s.isEmpty()) {
//enable or disable features
}
}
});
}
});
}
Validieren der Feature Flag-Anfrage
Führen Sie nach dem Hinzufügen des Codes den Emulator auf der Startseite aus und beobachten Sie die Protokolldatei auf die aktualisierte Antwort:
Erstellen eines JSON-Angebots für Feature Flag
Wir erstellen nun ein einfaches JSON-Angebot, das als Markierung oder Trigger für eine bestimmte Zielgruppe dient - die Zielgruppe, für die der Rollout der Funktionen in ihrer App erfolgen würde. Erstellen Sie in der Target ein neues Angebot:
Nennen wir sie „Feature Flag v1“ mit dem Wert
Erstellen einer Aktivität
Erstellen wir nun mit diesem Angebot eine A/B-Test -Aktivität. Detaillierte Anweisungen zum Erstellen einer Aktivität finden Sie in der vorherigen Lektion. Die Aktivität benötigt für dieses Beispiel nur eine Audience. In einem Live-Szenario können Sie bestimmte benutzerdefinierte Zielgruppen für bestimmte Funktions-Rollouts erstellen und dann die Aktivität so einstellen, dass diese Zielgruppen verwendet werden. In diesem Beispiel weisen wir nur Traffic von 50/50 zu (50 % den Besuchern, die die Funktionsaktualisierungen sehen würden, und 50 % den Besuchern, die ein Standarderlebnis sehen würden). Im Folgenden finden Sie die Konfiguration der Aktivität:
-
Benennen Sie die Aktivität mit „Feature Flag“
-
Speicherort „WeTravel_Feature_Flag_Recs“ auswählen
-
Ändern des Inhalts in das JSON-Angebot „Feature Flag v1“
-
Klicken Sie auf Add Experience , um Erlebnis B hinzuzufügen.
-
Verlassen Sie den Speicherort „WeTravel_Feature_Flag_Recs“
-
Default Content für den Inhalt belassen
-
Klicken Sie auf Next , um zum Bildschirm Targeting zu gelangen
-
Stellen Sie auf dem Bildschirm Targeting sicher, dass die Traffic Allocation auf die Standardeinstellung (Manuell) eingestellt ist und dass für jedes Erlebnis die standardmäßige 50-%-Zuordnung gilt. Wählen Sie Next aus, um zu Goals & Settings zu wechseln.
-
Legen Sie die Primary Goal auf Conversion fest.
-
Legen Sie die Aktion auf Viewed an Mbox fest. Wir verwenden den Speicherort „weTravel_context_dest“ (da dieser Speicherort auf dem Bestätigungsbildschirm ist, können wir ihn verwenden, um zu sehen, ob die neue Funktion zu weiteren Konversionen führt).
-
Klicken Sie auf Save & Close.
die Aktivität aktivieren.
Validieren der Feature Flag-Aktivität
Verwenden Sie nun den Emulator, um nach der Anfrage zu suchen. Da wir die Zielgruppenbestimmung auf 50 % der Benutzenden festgelegt haben, gibt es 50 %. Die Antwort mit dem Feature Flag zeigt den {enable:1}
Wert an.
Wenn Sie den {enable:1}
nicht sehen, bedeutet das, dass Sie für das Erlebnis nicht angesprochen wurden. Um das Anzeigen des Angebots zu erzwingen, haben Sie folgende Möglichkeiten:
- Deaktivieren Sie die Aktivität.
- Ändern Sie die Traffic-Zuordnung im neuen Funktionserlebnis auf 100 %.
- Speichern und erneut aktivieren.
- Löschen Sie die Daten auf dem Emulator und starten Sie die App neu.
- Das Angebot sollte jetzt den
{enable:1}
zurückgeben.
In einem Live-Szenario kann die {enable:1}
-Antwort verwendet werden, um in Ihrer App eine stärker benutzerdefinierte Logik zu aktivieren und den spezifischen Funktionssatz anzuzeigen, den Sie Ihrer Zielgruppe anzeigen möchten.
Schlussfolgerung
Gut gemacht! Jetzt verfügen Sie über die erforderlichen Fähigkeiten, um Funktionen für bestimmte Benutzergruppen bereitzustellen.