Variables dynamiques

Qu'est-ce qu'un test à variables dynamiques ?

Il est possible d'affecter des variables de votre application à des variables dynamiques. Vous pouvez modifier la valeur de ces variables dynamiques via le tableau de bord pour créer des tests sans avoir à soumettre votre application une nouvelle fois dans l'App Store. Nous prenons en charge les variables de types chaîne, nombre entier, double, virgule flottante, valeur booléenne, liste/ensemble et correspondance/dictionnaire. Vous pouvez utiliser ces variables pour modifier certains éléments comme des descriptions et des boutons d'action (CTA), des noms de polices et de couleurs, ainsi que pour des utilisations plus internes comme les drapeaux de fonctionnalités, le moment et la durée d'affichage des alertes, les URL de services Web, etc.

Pourquoi utiliser des variables dynamiques plutôt qu'un bloc de code ?

  1. Les variables dynamiques simplifient la programmation requise dans votre application. Vous n'avez pas besoin d'un bloc de code distinct pour chaque variante, ni même pour différents tests. Au lieu de cela, il vous suffit d'insérer l'extrait de code indiquant qu'une variable va être testée dans votre application. La prochaine fois qu'Apptimize se connectera à votre appareil, votre variable sera disponible dans la liste des variables dynamiques.
  2. Les tests à variables dynamiques se font en temps réel. Imaginons que vous ayez un menu déroulant rempli par une liste dynamique permettant à l'utilisateur de sélectionner des réponses dans le cadre d'une enquête. Vous pouvez créer un test à variables dynamiques qui ajoute des éléments en temps réel à cette liste ou en supprime, d'où un menu déroulant plus ou moins long pour les réponses à l'enquête.

Instructions relatives à l'exécution d'une test à variables dynamiques

Les tests à variables dynamiques vous permettent de tester des modifications pour n'importe quelle variable. Une fois qu'une variable est marquée, vous pouvez créer de nouveaux tests avec des variantes de valeurs différentes sans avoir recours à l'App Store.

Dans notre exemple, nous allons utiliser cette fausse page d'inscription à Apptimize. Par défaut, l'application ressemble à ce qui suit :

Dans le cadre de cet exemple, nous allons tester le remplacement du texte « Skip » par « Maybe later ». Allons-y.

  1. Dans un premier temps, je dois ajouter du code à mon application pour indiquer à Apptimize que l'application peut modifier le libellé du bouton, qui est une variable de type chaîne. J'attribue le nom « buttonTitleSkip » à la variable dynamique. Ce nom apparaîtra dans ma liste de variables dynamiques. Je définis également la valeur initiale « Skip », qui s'affichera pour la version initiale et lorsqu'Apptimize n'exécutera pas le test.

Pour iOS, je configure le nom de la variable dynamique avec ApptimizeString et la valeur initiale en dehors de toute classe ou méthode. Je définis ensuite le libellé du bouton à l'aide du nom de la variable et de la valeur, [buttonTitleSkip stringValue]. Cela donne ceci :

 

Pour retrouver toute la documentation sur l'API pour iOS, cliquez ici.

 

Pour Android, je définis la variable private static avec ApptimizeVar et je commence avec la valeur initiale. Je définis ensuite le libellé du bouton à l'aide du nom de la variable et de la valeur, TitleSkip.value(). Cela donne ceci :

Veuillez noter que, pour Android, il est nécessaire d'inclure import com.apptimize.ApptimizeVar pour les variables dynamiques. Pour retrouver toute la documentation sur l'API pour Android, cliquez ici.

 

  1. Il me faut ensuite exécuter l'application et accéder à l'emplacement où les variables sont utilisées afin que les variables dynamiques soient automatiquement enregistrées sur le tableau de bord.
  2. Une fois que vous avez terminé la conception et l'exécution de votre application après l'intégration du code associé aux variables dynamiques, créez un nouveau test et sélectionnez le type de test Dynamic Variable.
  3. Je vois désormais les variables dynamiques que j'ai intégrées s'afficher dans le tableau de bord, où je peux modifier leurs valeurs et ajouter des variantes. Configurez le test avec les valeurs que vous souhaitez modifier pour plusieurs variantes, puis poursuivez en créant le test A/B normalement.

 

Annexe : documentation technique relative aux variables dynamiques pour iOS

Le nouveau protocole ApptimizeVariable permet d'utiliser des variables de type chaîne (String), nombre entier (Integer), double (Double), virgule flottante (Floats), valeur booléenne (Boolean), liste (List) et correspondance (Map) (pour les correspondances, le premier type doit être une chaîne). Lors de la configuration des variables, le « nom » est le nom qui apparaît dans votre liste de variables dynamiques et est suivi par la valeur souhaitée pour la variable dans une syntaxe littérale Objective-C lorsqu'Apptimize n'est pas en cours d'exécution. Ce sera la valeur de référence initiale dans les tests. Seules les paires clé/valeur saisies sur le tableau de bord Web où la valeur n'est pas vide seront transmises comme variantes, de la même façon que pour les ensembles.

API

Insérez l'importation Apptimize sur le fichier avec les variables dynamiques :

#import <Apptimize/Apptimize.h>

 

L'API complète s'apparente à ce qui suit :

#define ApptimizeString(name, value) ... #define ApptimizeInt(name, value) ...   #define ApptimizeDouble(name, value) ... #define ApptimizeBoolean(name, value) ...   #define ApptimizeArrayOfStrings(name, value) ...       #define ApptimizeDictionaryOfStrings(name, value) ... #define ApptimizeArrayOfInts(name, value) ...         #define ApptimizeDictionaryOfInts(name, value) ...     #define ApptimizeArrayOfDoubles(name, value) ...   #define ApptimizeDictionaryOfDoubles(name, value) ...   #define ApptimizeArrayOfBooleans(name, value) ... #define ApptimizeDictionaryOfBooleans(name, value) ...

Exemple d'utilisation

Initialisez le nom de la variable et les valeurs initiales (au-dessus de viewDidLoad, en dehors de toute classe ou méthode).

ApptimizeString(myString, @"original string"); ApptimizeInteger(myInteger, 2014); ApptimizeDouble(myDouble, 3.14); ApptimizeBoolean(myBool, YES); ApptimizeArrayOfIntegers(myIntArray, (@[@(-1), @(0), @(1), @(3), @(10), @(20)])); ApptimizeDictionaryOfStrings(myStringDictionary, (@{@"user_name":@”Apptimize”, @"subscription_level":@"enterprise"}));

Dans mes méthodes, j'obtiens les valeurs en utilisant le nom et en appelant typeValue. Le test sera ainsi marqué lorsque la version initiale ou la variante aura été vue par un participant au test.

 

NSLog(@”my string value is: %@”, [myString stringValue] ); NSLog(@”my array values are: %@”, [myIntArray arrayValue]); NSLog(@”my dictionary values are: %@”, [myBoolDictionary dictionaryValue] );

Annexe : dépréciations chaîne/valeur

Étant donné que les variables dynamiques remplacent la fonctionnalité de nos anciens tests de valeur de type chaîne/nombre entier/double, nous prendrons en charge des extraits de code pour une durée limitée. Pour le moment, l'exécution de tests de valeur comme brouillons continuera de fonctionner. De même, le test de valeur codé s'affichera sous forme de variables dynamiques dans votre liste et pourra être utilisé pour les variables dynamiques. Nous vous demandons toutefois de procéder à la mise à jour dès que possible.  Veuillez nous contacter si vous souhaitez continuer à utiliser les tests de valeur. Les extraits de code sont les suivants :

Pour iOS :

NSString *testValue1 = [Apptimize stringForTest:@"test name" defaultString:@"original_value"]; NSInteger testVale2 = [Apptimize integerForTest:@"test name" defaultInteger:1]; double testValue3 = [Apptimize doubleForTest:@"testname" defaultDouble:3.14];

Pour Android :

String testValue1 = Apptimize.stringForTest("Test Name", "original string"); int testValue2 = Apptimize.integerForTest("Test Name", 1); double testValue3 = Apptimize.doubleForTest("Test Name", 3.14);

 

Vous avez d’autres questions ? Envoyer une demande
Réalisé par Zendesk