Udostępnij przez


Kodowanie aplikacji na potrzeby eksperymentowania

Po utworzeniu projektu i zdefiniowaniu zmiennych zdalnych w Partner Centermożesz zaktualizować kod w aplikacji UWP platformy uniwersalnej systemu Windows, aby:

  • Odbieraj wartości zmiennych zdalnych z Partner Center.
  • Użyj zmiennych zdalnych, aby skonfigurować środowiska aplikacji dla użytkowników.
  • Zarejestruj zdarzenia w Centrum Partnerskim, które wskazują, kiedy użytkownicy wyświetlili eksperyment i wykonali oczekiwaną akcję (nazywaną również konwersją ).

Aby dodać to zachowanie do aplikacji, użyjesz interfejsów API udostępnianych przez zestaw SDK usług Microsoft Store.

W poniższych sekcjach opisano ogólny proces pobierania odmian eksperymentu i rejestrowania zdarzeń w Centrum partnerskim. Po kodzie aplikacji na potrzeby eksperymentowania możesz zdefiniować eksperyment w Centrum partnerskim. Aby zapoznać się z przewodnikiem, który pokazuje pełny proces tworzenia i uruchamiania eksperymentu, zobacz Tworzenie i uruchamianie pierwszego eksperymentu przy użyciu testowania A/B.

Uwaga / Notatka

Niektóre interfejsy API eksperymentowania w zestawie SDK usług Microsoft Store używają wzorca asynchronicznego do pobierania danych z Centrum Partnerskiego. Oznacza to, że część wykonywania tych metod może odbywać się po wywołaniu metod, więc interfejs użytkownika aplikacji może pozostać dynamiczny podczas wykonywania operacji. Wzorzec asynchroniczny wymaga, aby aplikacja używała słowa kluczowego async i operatora await podczas wywoływania API, jak pokazano w przykładach kodu w tym artykule. Zgodnie z konwencją metody asynchroniczne kończą się na Async.

Konfigurowanie projektu

Aby rozpocząć, zainstaluj zestaw SDK usług Microsoft Store na komputerze dewelopera i dodaj niezbędne odwołania do projektu.

  1. Zainstaluj zestaw SDK usług sklepu Microsoft Store.
  2. Otwórz projekt w programie Visual Studio.
  3. W Eksploratorze rozwiązań rozwiń węzeł projektu, kliknij prawym przyciskiem myszy Odwołania, a następnie kliknij pozycję Dodaj odwołanie.
  4. W Menedżerze odniesień rozwiń Uniwersalny Windows i kliknij Rozszerzenia.
  5. Na liście zestawów SDK zaznacz pole wyboru obok Microsoft Engagement Framework i kliknij OK.

Uwaga / Notatka

W przykładach kodu w tym artykule założono, że plik kodu ma przy użyciu instrukcji dla przestrzeni nazw System.Threading.Tasks i Microsoft.Services.Store.Engagement przestrzeni nazw.

Pobierz dane wariacji i zarejestruj zdarzenie wyświetlenia dla eksperymentu

W projekcie znajdź kod funkcji, którą chcesz zmodyfikować w eksperymencie. Dodaj kod, który pobiera dane dla odmiany, użyj tych danych, aby zmodyfikować zachowanie testowej funkcji, a następnie zarejestrować zdarzenie wyświetlania eksperymentu w usłudze testowania A/B w Centrum partnerskim.

Potrzebny kod będzie zależeć od aplikacji, ale w poniższym przykładzie pokazano podstawowy proces. Aby zapoznać się z kompletnym przykładem kodu, zobacz Tworzenie i uruchamianie pierwszego eksperymentu z testowaniem A/B.

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");
}

W poniższych krokach szczegółowo opisano ważne części tego procesu.

  1. Zadeklaruj obiekt StoreServicesExperimentVariation reprezentujący bieżące przypisanie odmiany i obiekt StoreServicesCustomEventLogger, którego użyjesz do rejestrowania zdarzeń wyświetleń i konwersji w Partner Center.

    private StoreServicesExperimentVariation variation;
    private StoreServicesCustomEventLogger logger;
    
  2. Zadeklaruj zmienną ciągu przypisaną do identyfikatora projektu dla eksperymentu, który chcesz pobrać.

    Uwaga / Notatka

    Otrzymujesz identyfikator projektu, gdy tworzysz projekt w Centrum Partnerskim. Identyfikator projektu pokazany poniżej służy tylko do celów przykładowych.

    private string projectId = "F48AC670-4472-4387-AB7D-D65B095153FB";
    
  3. Pobierz zapamiętane bieżące przypisanie wariantu Twojego eksperymentu, wywołując metodę statyczną GetCachedVariationAsync, i przekaż do niej identyfikator projektu eksperymentu. Ta metoda zwraca obiekt StoreServicesExperimentVariationResult, który zapewnia dostęp do przypisania odmiany za pośrednictwem właściwości ExperimentVariation.

    var result = await StoreServicesExperimentVariation.GetCachedVariationAsync(projectId);
    variation = result.ExperimentVariation;
    
  4. Sprawdź właściwość IsStale, aby określić, czy buforowane przypisanie odmiany musi zostać odświeżone przy użyciu zdalnego przypisania odmiany z serwera. Jeśli trzeba go odświeżyć, wywołaj statyczną metodę GetRefreshedVariationAsync , aby sprawdzić zaktualizowane przypisanie odmiany z serwera i odświeżyć lokalną buforowaną odmianę.

    if (result.ErrorCode != StoreServicesEngagementErrorCode.None || result.ExperimentVariation.IsStale)
    {
        result = await StoreServicesExperimentVariation.GetRefreshedVariationAsync(projectId);
    
        if (result.ErrorCode == StoreServicesEngagementErrorCode.None)
        {
            variation = result.ExperimentVariation;
        }
    }
    
  5. Użyj metod GetBoolean, GetDouble, GetInt32lub GetString obiektu StoreServicesExperimentVariation, aby uzyskać wartości dla przypisania odmiany. W każdej metodzie pierwszy parametr to nazwa odmiany, którą chcesz pobrać (jest to ta sama nazwa odmiany wprowadzonej w Centrum partnerskim). Drugi parametr jest wartością domyślną, którą metoda powinna zwrócić, jeśli nie jest w stanie pobrać określonej wartości z Centrum partnerskiego (na przykład jeśli nie ma łączności sieciowej), a buforowana wersja odmiany jest niedostępna.

    W poniższym przykładzie użyto metody GetString , aby uzyskać zmienną o nazwie buttonText i określa domyślną wartość zmiennej Grey Button.

    var buttonText = variation.GetString("buttonText", "Grey Button");
    
  6. W kodzie użyj wartości zmiennych, aby zmodyfikować zachowanie testowej funkcji. Na przykład poniższy kod przypisuje wartość buttonText do zawartości przycisku w aplikacji. W tym przykładzie przyjęto założenie, że ten przycisk został już zdefiniowany w innym miejscu projektu.

    await button.Dispatcher.RunAsync(
        Windows.UI.Core.CoreDispatcherPriority.Normal,
        () =>
        {
            button.Content = buttonText;
        });
    
  7. Na koniec zarejestruj zdarzenie wyświetl dla eksperymentu w usłudze testowania A/B w Centrum partnerskim. Zainicjuj pole do obiektu StoreServicesCustomEventLogger i wywołaj metodę LogForVariation . Przekaż obiekt StoreServicesExperimentVariation, który reprezentuje bieżące przypisanie odmiany (ten obiekt dostarcza kontekst zdarzenia w Centrum partnerskim) i nazwę zdarzenia widoku eksperymentu. Musi to być zgodne z nazwą zdarzenia wyświetlenia wprowadzoną dla eksperymentu w Centrum Partnerów. Kod powinien rejestrować zdarzenie obejrzenia, gdy użytkownik zacznie wyświetlać odmianę, która jest częścią eksperymentu.

    W poniższym przykładzie pokazano, jak zarejestrować zdarzenie widoku o nazwie userViewedButton. W tym przykładzie celem eksperymentu jest nakłonienie użytkownika do kliknięcia przycisku w aplikacji, więc zdarzenie wyświetlenia jest rejestrowane po pobraniu danych wariantu (w tym przypadku tekstu przycisku) i przypisaniu ich do zawartości przycisku.

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

Rejestrowanie zdarzeń konwersji w Centrum partnerskim

Następnie dodaj kod, który rejestruje zdarzenia konwersji do usługi testowania A/B w Centrum partnerskim. Kod powinien rejestrować zdarzenie konwersji, gdy użytkownik osiągnie cel eksperymentu. Potrzebny kod będzie zależeć od aplikacji, ale poniżej przedstawiono ogólne kroki. Aby zapoznać się z kompletnym przykładem kodu, zobacz Tworzenie i uruchamianie pierwszego eksperymentu z testowaniem A/B.

  1. W kodzie uruchamianym, gdy użytkownik osiągnie cel dla jednego z celów eksperymentu, wywołaj ponownie metodę LogForVariation i przekaż obiekt StoreServicesExperimentVariation oraz nazwę zdarzenia konwersji dla twojego eksperymentu. Musi to być zgodne z jedną z nazw zdarzeń konwersji, które wprowadzasz dla eksperymentu w Centrum Partnerskim.

    Poniższy przykład rejestruje zdarzenie konwersji o nazwie userClickedButton z procedury obsługi zdarzeń Kliknij dla przycisku. W tym przykładzie celem eksperymentu jest skłonienie użytkownika do kliknięcia przycisku.

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

Dalsze kroki

Po kodzie eksperymentu w aplikacji możesz wykonać następujące czynności:

  1. Zdefiniuj eksperyment w Centrum partnerskim. Utwórz eksperyment, który definiuje zdarzenia wyświetlania, zdarzenia konwersji i unikatowe odmiany dla testu A/B.
  2. Uruchamianie eksperymentu i zarządzanie nim w Centrum partnerskim.