Bessere Produkte schneller entwickeln

Optimizely Full Stack bietet Produktteams leistungsstarkes A/B-Testing und Featureflags.

Unterstützte Programmiersprachen

Optimizely hat benutzerfreundliche SDKs für die wichtigsten Plattformen.

Testen Sie in jeder Anwendung: Nutzen Sie jedes Feature in Ihrer Roadmap als Gelegenheit neue Erkenntnisse zu gewinnen.

Eine optimale User Experience in jeder Phase der Customer Journey

Führen Sie Tests durch bis tief hinein in Ihren Technologie-Stack. So können Sie überall eine hervorragende Customer Experience bieten – von Suchergebnissen, über Werbeaktionen bis hin zu Empfehlungen und Zahlungsabläufen.

Risiko minimieren und Fehlentscheidungen verhindern

Weisen Sie die Wirkung neuer Features, Performance- oder Backend-Änderungen nach – schon vor dem Rollout. Mit Optimizely X Full Stack können Ihre Produktmanager Feature-Rollouts getrennt vom Code-Deployment steuern.

Visual Section 2

Wissen, was funktioniert

Mit der Optimizely Stats Engine erhalten Sie statistisch relevante Ergebnisse in Echtzeit. Dadurch können Ihre Teams schneller Entscheidungen treffen. Lassen Sie Ihr gesamtes Team experimentieren. So gewinnt immer die beste Idee - egal, wer sie vorgeschlagen hat.

FullStack sec3 2

Updates in Echtzeit

Aktualisieren Sie Ihre Applikationen und Tests einfach und schnell und umgehen Sie komplexe und lange Release-Zyklen.

Platform Page Full stack UI

Eine zuverlässige Experimentation-Plattform

Offene Plattform

Unsere Software Development Kits (SDKs) sind Open Source und helfen Ihnen dabei, Optimizely mit Ihrer Analytics-Infrastruktur zu integrieren und Netzwerkaktivitäten zu kontrollieren.

Schnelle Entscheidungsfindung

Führen Sie Experimente auch in performancekritischen Codepfaden aus. Unsere SDKs ordnen Benutzer Experimenten im Arbeitsspeicher zu. Dadurch wirken sich Tests nicht auf die Ladezeiten aus.

Skalierbare Architektur

Tausende Kunden nutzen unsere Event-Collection-Server weltweit. Dank unseres Backends erhalten Sie umgehend Ergebnisse Ihrer Experimente in Echtzeit.

                      
              import optimizely
              
              optimizely = optimizely.Optimizely(datafile)
              
              

# Activate an experiment

variation = optimizely.activate('my_experiment', 'user_123') if variation == 'variation_a':

# Execute code for variation A

elif variation == 'variation_b':

# Execute code for variation B

else:

# Execute default code

# Track an event

optimizely.track('purchase_completed', 'user_123')
                      
              import com.optimizely.ab.Optimizely;
              
              Optimizely optimizely = Optimizely.builder(datafile).build();
              
              

// Activate an experiment

Variation variation = optimizely.activate("my_experiment", "user_123"); if (variation != null) { if (variation.is("variation_a")) {

// Execute code for variation A

} else if (variation.is("variation_b")) {

// Execute code for variation B

} } else {

// Execute default code

}

// Track an event

optimizely.track("purchase_completed", "user_123");
                      
              import "optimizely"
              
              project = Optimizely::Project.new(datafile)
              
              

# Activate an experiment

variation = project.activate('my_experiment', 'user_123') if variation == 'variation_a'

# Execute code for variation A

elsif variation == 'variation_b'

# Execute code for variation B

else

# Execute default code

end

# Track an event

project.track('purchase_completed', 'user_123')
                      
              var optimizely = require('optimizely-server-sdk');
              
              var optimizely = optimizely.createInstance({ datafile: datafile });
              
              

// Activate an experiment

var variation = optimizely.activate('my_experiment', 'user_123'); if (variation === 'variation_a') {

// Execute code for variation A

} else if (variation === 'variation_b') {

// Execute code for variation B

} else {

// Execute default code

}

// Track an event

optimizely.track('purchase_completed', 'user_123');
                      
              use Optimizely\Optimizely;
              
              

// Initialize an Optimizely client

$optimizelyClient = new Optimizely($datafile);

// Activate an experiment

$variation = $optimizelyClient->activate('my_experiment', 'user_123'); if ($variation == 'variation_a') {

// Execute code for variation A

} elseif ($variation == 'variation_b') {

// Execute code for variation B

} else {

// Execute default code

}

// Track an event

$optimizelyClient->track('purchase_completed', 'user_123');
                      
              using OptimizelySDK;
              
              

// Initialize an Optimizely client

Optimizely OptimizelyClient = new Optimizely(datafile);

// Activate user in an experiment

var variation = OptimizelyClient.Activate("my_experiment", userId); if (variation != null) { if (variation == "control") {

// Execute code for variation A

} else if (variation == "treatment") {

// Execute code for variation B

} } else {

// Execute default code

}

// Track conversion event

OptimizelyClient.Track("my_conversion", userId);
                      
              var optimizely = require('optimizely-client-sdk');
              

// Initialize an Optimizely client

var optimizelyClientInstance = optimizely.createInstance({ datafile: datafile });

// Alternatively, if you don't use CommonJS or npm, you can install the minified snippet and use the globally exported varible as follows

var optimizelyClientInstance = window.optimizelyClient.createInstance({ datafile: datafile });

// Activate user in an experiment

var variation = optimizelyClientInstance.activate('my_experiment', userId); if (variation === 'control') {

// Execute code for variation A

} else if (variation === 'treatment') {

// Execute code for variation B

} else {

// Execute default code

}

// Track conversion event

optimizelyClientInstance.track('my_conversion', userId);
                      
              

// Initialize an Optimizely manager

OPTLYManager *optlyManager = [OPTLYManager init:^(OPTLYManagerBuilder * _Nullable builder) { builder.projectId = @"projectId"; }];

// Initialize an Optimizely client by asynchronously downloading the datafile

[optlyManager initializeWithCallback:^(NSError * _Nullable error, OPTLYClient * _Nullable client) {

// Activate user in a test

OPTLYVariation *variation = [client activate:@"my_experiment" userId:@"userId"]; if ([variation.variationKey isEqualToString:@"control"]) {

// Execute code for the control

} else if ([variation.variationKey isEqualToString:@"treatment"]) {

// Execute code for the treatment

} else {

// Execute default code

}

// Track conversion event

[client track:@"my_conversion" userId:@"userId"]; }];
                        
              

// Initialize an Optimizely manager

let optimizelyManager : OPTLYManager? = OPTLYManager.init {(builder) in builder!.projectId = "projectId" }

// Initialize an Optimizely client by asynchronously downloading the datafile

optimizelyManager?.initialize(callback: { [weak self] (error, optimizelyClient) in

// Activate user in a test

if let variation = optimizelyClient?.activate("my_experiment", userId: "userId") { if (variation.variationKey == "control") {

// Execute code for the control

} else if (variation.variationKey == "treatment") {

// Execute code for the treatment

} } else {

// execute default code

}

// Track conversion event

optimizelyClient?.track("my_conversion", userId: "userId") })
                          
              import com.optimizely.ab.Optimizely;
              
              Optimizely optimizely = Optimizely.builder(datafile).build();
              
              

// Activate an experiment

Variation variation = optimizely.activate("my_experiment", "user_123"); if (variation != null) { if (variation.is("variation_a")) {

// Execute code for variation A

} else if (variation.is("variation_b")) {

// Execute code for variation B

} } else {

// Execute default code

}

// Track an event

optimizely.track("purchase_completed", "user_123");

Mit Full Stack bessere Produkte entwickeln

Unternehmen wie Blue Apron und Stubhub setzen Optimizely Full Stack ein, um schneller und mit weniger Risiko bessere Produkte zu erstellen. Erfahren Sie, wie diese Produktteams über den gesamten Produktentwicklungsprozess hinweg Experimentation einsetzen.

Optimieren Sie Ihren Entwicklungsprozess durch einen schnellen Prototypenbau

Prüfen Sie neue Ideen mit Optimizely Web und Optimizely Full Stack, um Painted-Door-Tests durchzuführen, Prototypen zu entwickeln und Weiterleitungstests für verschiedene Designs auszuführen.

Die Komplettlösung für serverseitige Experimentation

  • Feature Flags

    Denkbar einfaches aktivieren, deaktivieren, verbergen oder ausrollen von Product Features während der Laufzeit. Sie können wählen, wem neue Features angezeigt werden.

  • Sofortige Aktualisierungen

    Aktualisieren Sie Ihre Experimente und Variablen in Echtzeit, ohne auf das nächste App-Store-Release warten zu müssen.

  • Gestaffelte Rollouts

    Verringern Sie das Risiko bei Einführung neuer Funktionen, indem Sie diese zunächst an kleine Nutzergruppen bereitstellen - ganz gezielt oder nach dem Zufallsprinzip.

  • Zielgruppen

    Setzen Sie benutzerdefinierte Attribute für ein präzises Targeting und Segmentieren ein.

  • Whitelists

    Schneller QA-Prozess für Experimente, indem Variationen für bestimmte Nutzer forciert werden.

  • Traffic Splitting

    Erstellen Sie mühelos randomisierte Traffic-Switches an beliebigen Stellen in Ihrer Anwendung, ohne die Performance zu beeinträchtigen.

  • Umgebung

    Verwalten Sie Experimente über Entwicklungs-, Staging- und Produktionsumfelder.

  • Event Tracking

    Überwachen Sie alle Conversion-Metriken und KPIs, die Ihnen wichtig sind, in Ihrer Anwendung oder einem anderen Dienst.

  • Benutzerspezifische Konfiguration

    Tauschen Sie Ihre eigenen Komponenten für Protokollierung, Fehlerbehandlung, Event Dispatching, Integrationen und andere Aufgaben mühelos aus.

  • Experimentation auf mehreren Kanälen

    Erstellen Sie eigene Nutzer-IDs, um über allen Kanäle hinweg eine einheitliche, personalisierte Customer Experience zu schaffen.

  • Export von Raw Events

    Laden Sie die vollständigen Eventdaten problemlos von Optimizely herunter.

  • Stats Engine von Optimizely

    Verfolgen Sie die Auswirkungen Ihrer Experimente mit der weltweit führenden Experimentation-Plattform in Echtzeit.

  • Unternehmensgerechte Sicherheit

    Rollen und Berechtigungen, 2-Faktor-Authentifizierung und Single Sign-on (SSO).

  • Experimentation auf Benutzerkonten-Ebene

    Stellen Sie beim Experimentieren mit Kundenkonten eine konsistente User Experience sicher; optional können zum splitten des Datenverkehrs Konto-IDs anstelle von Nutzer-IDs verwenden.

Full Stack hat unserem Unternehmen ganz neue Möglichkeiten eröffnet. Jedes Mal, wenn wir in einem unserer Produkte neuen Code implementieren, testen wir ihn zunächst, um zu überprüfen, wie sich die Änderung auf die Zahl der Conversions und unseren Umsatz auswirkt. Gleichzeitig erhält das Team wichtige Informationen, anhand derer es Entscheidungen treffen kann. Dabei achtet es darauf, dass Änderungen die Customer Experience positiv beeinflussen.
John Cline

Engineering Lead

Jetzt Experimentation in Ihrem Stack starten