Freigeben über


Programmieren Ihrer App für Experimente

Nachdem Sie ein Projekt erstellt und Remotevariablen im Partner Center definiert haben, können Sie den Code in Ihrer Universelle Windows-Plattform -App (UWP) auf Folgendes aktualisieren:

  • Empfangen von Remotevariablenwerten vom Partner Center.
  • Verwenden Sie Remotevariablen, um App-Oberflächen für Ihre Benutzer zu konfigurieren.
  • Protokollieren Sie Ereignisse im Partner Center, die angeben, wann Benutzer Ihr Experiment angezeigt und eine gewünschte Aktion (auch als Konvertierung bezeichnet ) ausgeführt haben.

Zum Hinzufügen dieses Verhaltens zu Ihrer App verwenden Sie APIs, die vom Microsoft Store Services SDK bereitgestellt werden.

In den folgenden Abschnitten wird der allgemeine Prozess zum Abrufen von Variationen für Ihr Experiment und die Protokollierung von Ereignissen im Partner Center beschrieben. Nachdem Sie Ihre App für experimente codiert haben, können Sie ein Experiment im Partner Center definieren. Eine exemplarische Vorgehensweise, die den End-to-End-Prozess zum Erstellen und Ausführen eines Experiments veranschaulicht, finden Sie unter Erstellen und Ausführen des ersten Experiments mit A/B-Tests.

Hinweis

Einige der Experimentier-APIs im Microsoft Store Services SDK verwenden das asynchrone Muster zum Abrufen von Daten aus Partner Center. Dies bedeutet, dass ein Teil der Ausführung dieser Methoden nach dem Aufrufen der Methoden erfolgen kann, sodass die Benutzeroberfläche Ihrer App reaktionsfähig bleiben kann, während die Vorgänge abgeschlossen sind. Das asynchrone Muster erfordert, dass Ihre App das asynchrone Schlüsselwort und den Await-Operator beim Aufrufen der APIs verwendet, wie in den Codebeispielen in diesem Artikel veranschaulicht. Standardmäßig enden asynchrone Methoden mit Async.

Konfigurieren des Projekts

Installieren Sie zunächst das Microsoft Store Services SDK auf Ihrem Entwicklungscomputer, und fügen Sie dem Projekt die erforderlichen Verweise hinzu.

  1. Installieren Sie das Microsoft Store Services SDK.
  2. Öffnen Sie Ihr Projekt in Visual Studio.
  3. Erweitern Sie in Projektmappen-Explorer den Projektknoten, klicken Sie mit der rechten Maustaste auf Verweise, und klicken Sie auf "Verweis hinzufügen".
  4. Erweitern Sie im Verweis-Manager universelle Windows-Geräte, und klicken Sie auf Erweiterungen.
  5. Aktivieren Sie in der Liste der SDKs das Kontrollkästchen neben Microsoft Engagement Framework , und klicken Sie auf OK.

Hinweis

In den Codebeispielen in diesem Artikel wird davon ausgegangen, dass Ihre Codedatei Anweisungen für die Namespaces "System.Threading.Tasks" und "Microsoft.Services.Store.Engagement" verwendet.

Abrufen von Variationsdaten und Protokollieren des Ansichtsereignisses für Ihr Experiment

Suchen Sie in Ihrem Projekt den Code für das Feature, das Sie in Ihrem Experiment ändern möchten. Fügen Sie Code hinzu, mit dem Daten für eine Variation abgerufen werden, verwenden Sie diese Daten, um das Verhalten des features zu ändern, das Sie testen, und protokollieren Sie dann das Ansichtsereignis für Ihr Experiment beim A/B-Testdienst in Partner Center.

Der spezifische Code, den Sie benötigen, hängt von Ihrer App ab, das folgende Beispiel veranschaulicht jedoch den grundlegenden Prozess. Ein vollständiges Codebeispiel finden Sie unter Erstellen und Ausführen ihres ersten Experiments mit A/B-Tests.

private StoreServicesExperimentVariation variation;
private StoreServicesCustomEventLogger logger;

// Assign this variable to the project ID for your experiment from Dev Center.
// The project ID shown below is for example purposes only.
private string projectId = "F48AC670-4472-4387-AB7D-D65B095153FB";

private async Task InitializeExperiment()
{
    // Get the current cached variation assignment for the experiment.
    var result = await StoreServicesExperimentVariation.GetCachedVariationAsync(projectId);
    variation = result.ExperimentVariation;

    // Refresh the cached variation assignment if necessary.
    if (result.ErrorCode != StoreServicesEngagementErrorCode.None || result.ExperimentVariation.IsStale)
    {
        result = await StoreServicesExperimentVariation.GetRefreshedVariationAsync(projectId);

        if (result.ErrorCode == StoreServicesEngagementErrorCode.None)
        {
            variation = result.ExperimentVariation;
        }
    }

    // Get the remote variable named "buttonText" and assign the value
    // to the button.
    var buttonText = variation.GetString("buttonText", "Grey Button");
    await button.Dispatcher.RunAsync(
        Windows.UI.Core.CoreDispatcherPriority.Normal,
        () =>
        {
            button.Content = buttonText;
        });

    // Log the view event named "userViewedButton" to Dev Center.
    if (logger == null)
    {
        logger = StoreServicesCustomEventLogger.GetDefault();
    }

    logger.LogForVariation(variation, "userViewedButton");
}

In den folgenden Schritten werden die wichtigen Teile dieses Prozesses ausführlich beschrieben.

  1. Deklarieren Sie ein StoreServicesExperimentVariation -Objekt, das die aktuelle Variationszuweisung und ein StoreServicesCustomEventLogger -Objekt darstellt, das Sie zum Protokollieren von Ansichts- und Konvertierungsereignissen in Partner Center verwenden.

    private StoreServicesExperimentVariation variation;
    private StoreServicesCustomEventLogger logger;
    
  2. Deklarieren Sie eine Zeichenfolgenvariable, die der Projekt-ID für das Experiment zugewiesen ist, das Sie abrufen möchten.

    Hinweis

    Sie erhalten eine Projekt-ID, wenn Sie ein Projekt im Partner Center erstellen. Die unten gezeigte Projekt-ID dient nur zu Beispielzwecken.

    private string projectId = "F48AC670-4472-4387-AB7D-D65B095153FB";
    
  3. Rufen Sie die aktuelle zwischengespeicherte Variationszuweisung für Ihr Experiment ab, indem Sie die statische GetCachedVariationAsync-Methode aufrufen und die Projekt-ID für Ihr Experiment an die Methode übergeben. Diese Methode gibt ein StoreServicesExperimentVariationResult -Objekt zurück, das Zugriff auf die Variationszuweisung über die ExperimentVariation -Eigenschaft ermöglicht.

    var result = await StoreServicesExperimentVariation.GetCachedVariationAsync(projectId);
    variation = result.ExperimentVariation;
    
  4. Überprüfen Sie die IsStale-Eigenschaft , um zu ermitteln, ob die zwischengespeicherte Variationszuweisung mit einer Remotevariationszuweisung vom Server aktualisiert werden muss. Wenn sie aktualisiert werden muss, rufen Sie die statische GetRefreshedVariationAsync-Methode auf, um eine aktualisierte Variationszuweisung vom Server zu überprüfen und die lokale zwischengespeicherte Variation zu aktualisieren.

    if (result.ErrorCode != StoreServicesEngagementErrorCode.None || result.ExperimentVariation.IsStale)
    {
        result = await StoreServicesExperimentVariation.GetRefreshedVariationAsync(projectId);
    
        if (result.ErrorCode == StoreServicesEngagementErrorCode.None)
        {
            variation = result.ExperimentVariation;
        }
    }
    
  5. Verwenden Sie die Methoden "GetBoolean", "GetDouble", "GetInt32" oder "GetString " des Objekts "StoreServicesExperimentVariation" , um die Werte für die Variationszuweisung abzurufen. In jeder Methode ist der erste Parameter der Name der Variation, die Sie abrufen möchten (dies ist derselbe Name einer Variation, die Sie in Partner Center eingeben). Der zweite Parameter ist der Standardwert, den die Methode zurückgeben soll, wenn der angegebene Wert nicht aus Partner Center abgerufen werden kann (z. B. wenn keine Netzwerkkonnektivität vorhanden ist), und eine zwischengespeicherte Version der Variation ist nicht verfügbar.

    Im folgenden Beispiel wird GetString verwendet, um eine Variable mit dem Namen buttonText abzurufen und einen Standardvariablenwert von Grey Button angibt.

    var buttonText = variation.GetString("buttonText", "Grey Button");
    
  6. Verwenden Sie in Ihrem Code die Variablenwerte, um das Verhalten des features zu ändern, das Sie testen. Der folgende Code weist beispielsweise dem Inhalt einer Schaltfläche in Ihrer App den ButtonText-Wert zu. In diesem Beispiel wird davon ausgegangen, dass Sie diese Schaltfläche bereits an anderer Stelle in Ihrem Projekt definiert haben.

    await button.Dispatcher.RunAsync(
        Windows.UI.Core.CoreDispatcherPriority.Normal,
        () =>
        {
            button.Content = buttonText;
        });
    
  7. Protokollieren Sie schließlich das Ansichtsereignis für Ihr Experiment mit dem A/B-Testdienst im Partner Center. Initialisieren Sie das logger Feld mit einem StoreServicesCustomEventLogger-Objekt , und rufen Sie die LogForVariation-Methode auf. Übergeben Sie das StoreServicesExperimentVariation -Objekt, das die aktuelle Variationszuweisung darstellt (dieses Objekt stellt Kontext zum Ereignis an Partner Center) und den Namen des Ansichtsereignisses für Ihr Experiment bereit. Dies muss mit dem Anzeigeereignisnamen übereinstimmen, den Sie für Ihr Experiment im Partner Center eingeben. Ihr Code sollte das Ansichtsereignis protokollieren, wenn der Benutzer mit dem Anzeigen einer Variation beginnt, die Teil Ihres Experiments ist.

    Das folgende Beispiel zeigt, wie ein Ansichtsereignis mit dem Namen userViewedButton protokolliert wird. In diesem Beispiel besteht das Ziel des Experiments darin, den Benutzer auf eine Schaltfläche in der App zu klicken, sodass das Ansichtsereignis protokolliert wird, nachdem die App die Variationsdaten (in diesem Fall den Schaltflächentext) abgerufen und dem Inhalt der Schaltfläche zugewiesen hat.

    if (logger == null)
    {
        logger = StoreServicesCustomEventLogger.GetDefault();
    }
    
    logger.LogForVariation(variation, "userViewedButton");
    

Protokollieren von Konvertierungsereignissen in Partner Center

Fügen Sie als Nächstes Code hinzu, der Konvertierungsereignisse im A/B-Testdienst im Partner Center protokolliert. Ihr Code sollte ein Konvertierungsereignis protokollieren, wenn der Benutzer ein Ziel für Ihr Experiment erreicht. Der spezifische Code, den Sie benötigen, hängt von Ihrer App ab, aber hier sind die allgemeinen Schritte. Ein vollständiges Codebeispiel finden Sie unter Erstellen und Ausführen ihres ersten Experiments mit A/B-Tests.

  1. Rufen Sie im Code, der ausgeführt wird, wenn der Benutzer ein Ziel für eines der Ziele des Experiments erreicht, die LogForVariation-Methode erneut auf, und übergeben Sie das StoreServicesExperimentVariation -Objekt und den Namen eines Konvertierungsereignisses für Ihr Experiment. Dies muss mit einem der Konvertierungsereignisnamen übereinstimmen, die Sie für Ihr Experiment in Partner Center eingeben.

    Im folgenden Beispiel wird ein Konvertierungsereignis namens "userClickedButton" aus dem Click-Ereignishandler für eine Schaltfläche protokolliert. In diesem Beispiel besteht das Ziel des Experiments darin, den Benutzer auf die Schaltfläche zu klicken.

    private void button_Click(object sender, RoutedEventArgs e)
    {
        if (logger == null)
        {
            logger = StoreServicesCustomEventLogger.GetDefault();
        }
    
        logger.LogForVariation(variation, "userClickedButton");
    }
    

Nächste Schritte

Nachdem Sie das Experiment in Ihrer App codiert haben, können Sie die folgenden Schritte ausführen:

  1. Definieren Sie Ihr Experiment im Partner Center. Erstellen Sie ein Experiment, das die Ansichtsereignisse, Konvertierungsereignisse und eindeutige Variationen für Ihren A/B-Test definiert.
  2. Führen Sie Ihr Experiment im Partner Center aus, und verwalten Sie es.