Partager via


Coder votre application à des fins d’expérimentation

Après avoir créé un projet et défini des variables distantes dans l’Espace partenaires, vous êtes prêt à mettre à jour le code dans votre application plateforme Windows universelle (UWP) pour :

  • Recevoir des valeurs de variables distantes à partir de l’Espace partenaires.
  • Utilisez des variables distantes pour configurer des expériences d’application pour vos utilisateurs.
  • Journaliser les événements dans l’Espace partenaires qui indiquent quand les utilisateurs ont consulté votre expérience et effectué une action souhaitée (également appelée conversion).

Pour ajouter ce comportement à votre application, vous allez utiliser des API fournies par le Kit de développement logiciel (SDK) microsoft Store Services.

Les sections suivantes décrivent le processus général d’obtention de variantes pour votre expérience et la journalisation d’événements dans l’Espace partenaires. Après avoir codé votre application pour l’expérimentation, vous pouvez définir une expérience dans l’Espace partenaires. Pour obtenir une procédure pas à pas qui illustre le processus de création et d’exécution d’une expérience de bout en bout, consultez Créer et exécuter votre première expérience avec des tests A/B.

Remarque

Certaines API d’expérimentation du Kit de développement logiciel (SDK) microsoft Store Services utilisent le modèle asynchrone pour récupérer des données à partir de l’Espace partenaires. Cela signifie qu’une partie de l’exécution de ces méthodes peut avoir lieu une fois les méthodes appelées, de sorte que l’interface utilisateur de votre application peut rester réactive pendant que les opérations se terminent. Le modèle asynchrone nécessite que votre application utilise le mot clé asynchrone et l’opérateur await lors de l’appel des API, comme illustré par les exemples de code de cet article. Par convention, les méthodes asynchrones se terminent par Async.

Configurer votre projet

Pour commencer, installez le Kit de développement logiciel (SDK) microsoft Store Services sur votre ordinateur de développement et ajoutez les références nécessaires à votre projet.

  1. Installez le Kit de développement logiciel (SDK) microsoft Store Services.
  2. Ouvrez votre projet dans Visual Studio.
  3. Dans Explorateur de solutions, développez votre nœud de projet, cliquez avec le bouton droit sur Références, puis cliquez sur Ajouter une référence.
  4. Dans le Gestionnaire de références, développez Windows universel et cliquez sur Extensions.
  5. Dans la liste des kits SDK, cochez la case en regard de Microsoft Engagement Framework , puis cliquez sur OK.

Remarque

Les exemples de code de cet article supposent que votre fichier de code utilise des instructions pour les espaces de noms System.Threading.Tasks et Microsoft.Services.Store.Engagement.

Obtenir des données de variante et consigner l’événement d’affichage pour votre expérience

Dans votre projet, recherchez le code de la fonctionnalité que vous souhaitez modifier dans votre expérience. Ajoutez du code qui récupère des données pour une variante, utilisez ces données pour modifier le comportement de la fonctionnalité que vous testez, puis connectez l’événement d’affichage pour votre expérience au service de test A/B dans l’Espace partenaires.

Le code spécifique dont vous avez besoin dépend de votre application, mais l’exemple suivant illustre le processus de base. Pour obtenir un exemple de code complet, consultez Créer et exécuter votre première expérience avec les tests 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");
}

Les étapes suivantes décrivent en détail les parties importantes de ce processus.

  1. Déclarez un objet StoreServicesExperimentVariation qui représente l’affectation de variantes actuelle et un objet StoreServicesCustomEventLogger que vous utiliserez pour consigner les événements d’affichage et de conversion dans l’Espace partenaires.

    private StoreServicesExperimentVariation variation;
    private StoreServicesCustomEventLogger logger;
    
  2. Déclarez une variable de chaîne affectée à l’ID de projet de l’expérience que vous souhaitez récupérer.

    Remarque

    Vous obtenez un ID de projet lorsque vous créez un projet dans l’Espace partenaires. L’ID de projet indiqué ci-dessous est à titre d’exemple uniquement.

    private string projectId = "F48AC670-4472-4387-AB7D-D65B095153FB";
    
  3. Obtenez l’attribution de variante mise en cache actuelle pour votre expérience en appelant la méthode statique GetCachedVariationAsync et transmettez l’ID de projet pour votre expérience à la méthode. Cette méthode retourne un objet StoreServicesExperimentVariationResult qui fournit l’accès à l’attribution de variantes via la propriété ExperimentVariation .

    var result = await StoreServicesExperimentVariation.GetCachedVariationAsync(projectId);
    variation = result.ExperimentVariation;
    
  4. Vérifiez la propriété IsStale pour déterminer si l’attribution de variantes mises en cache doit être actualisée avec une attribution de variante distante à partir du serveur. Si elle doit être actualisée, appelez la méthode GetRefreshedVariationAsync statique pour rechercher une attribution de variante mise à jour à partir du serveur et actualiser la variante mise en cache locale.

    if (result.ErrorCode != StoreServicesEngagementErrorCode.None || result.ExperimentVariation.IsStale)
    {
        result = await StoreServicesExperimentVariation.GetRefreshedVariationAsync(projectId);
    
        if (result.ErrorCode == StoreServicesEngagementErrorCode.None)
        {
            variation = result.ExperimentVariation;
        }
    }
    
  5. Utilisez les méthodes GetBoolean, GetDouble, GetInt32 ou GetString de l’objet StoreServicesExperimentVariation pour obtenir les valeurs de l’affectation de variantes. Dans chaque méthode, le premier paramètre est le nom de la variante que vous souhaitez récupérer (il s’agit du même nom qu’une variante que vous entrez dans l’Espace partenaires). Le deuxième paramètre est la valeur par défaut que la méthode doit retourner si elle n’est pas en mesure de récupérer la valeur spécifiée à partir de l’Espace partenaires (par exemple, s’il n’existe aucune connectivité réseau) et qu’une version mise en cache de la variante n’est pas disponible.

    L’exemple suivant utilise GetString pour obtenir une variable nommée buttonText et spécifie une valeur de variable par défaut de Grey Button.

    var buttonText = variation.GetString("buttonText", "Grey Button");
    
  6. Dans votre code, utilisez les valeurs de variable pour modifier le comportement de la fonctionnalité que vous testez. Par exemple, le code suivant affecte la valeur buttonText au contenu d’un bouton dans votre application. Cet exemple suppose que vous avez déjà défini ce bouton ailleurs dans votre projet.

    await button.Dispatcher.RunAsync(
        Windows.UI.Core.CoreDispatcherPriority.Normal,
        () =>
        {
            button.Content = buttonText;
        });
    
  7. Enfin, enregistrez l’événement d’affichage de votre expérience sur le service de test A/B dans l’Espace partenaires. Initialisez le logger champ sur un objet StoreServicesCustomEventLogger et appelez la méthode LogForVariation . Transmettez l’objet StoreServicesExperimentVariation qui représente l’attribution de variante actuelle (cet objet fournit un contexte sur l’événement à l’Espace partenaires) et le nom de l’événement d’affichage pour votre expérience. Cela doit correspondre au nom de l’événement d’affichage que vous entrez pour votre expérience dans l’Espace partenaires. Votre code doit consigner l’événement d’affichage lorsque l’utilisateur commence à afficher une variante qui fait partie de votre expérience.

    L’exemple suivant montre comment consigner un événement d’affichage nommé userViewedButton. Dans cet exemple, l’objectif de l’expérience consiste à faire en sorte que l’utilisateur clique sur un bouton dans l’application, de sorte que l’événement d’affichage est enregistré une fois que l’application a récupéré les données de variante (dans ce cas, le texte du bouton) et l’a affecté au contenu du bouton.

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

Journaliser les événements de conversion vers l’Espace partenaires

Ensuite, ajoutez du code qui journalise les événements de conversion vers le service de test A/B dans l’Espace partenaires. Votre code doit consigner un événement de conversion lorsque l’utilisateur atteint un objectif pour votre expérience. Le code spécifique dont vous avez besoin dépend de votre application, mais voici les étapes générales. Pour obtenir un exemple de code complet, consultez Créer et exécuter votre première expérience avec les tests A/B.

  1. Dans le code qui s’exécute lorsque l’utilisateur atteint un objectif pour l’un des objectifs de l’expérience, appelez à nouveau la méthode LogForVariation et transmettez l’objet StoreServicesExperimentVariation et le nom d’un événement de conversion pour votre expérience. Cela doit correspondre à l’un des noms d’événements de conversion que vous entrez pour votre expérience dans l’Espace partenaires.

    L’exemple suivant enregistre un événement de conversion nommé userClickedButton à partir du gestionnaire d’événements Click pour un bouton. Dans cet exemple, l’objectif de l’expérience est d’obtenir que l’utilisateur clique sur le bouton.

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

Étapes suivantes

Après avoir codé l’expérience dans votre application, vous êtes prêt à effectuer les étapes suivantes :

  1. Définissez votre expérience dans l’Espace partenaires. Créez une expérience qui définit les événements d’affichage, les événements de conversion et les variations uniques pour votre test A/B.
  2. Exécutez et gérez votre expérience dans l’Espace partenaires.