Using the VWO demo app, you can try Mobile App A/B testing.
To try the demo app, you will need ApiKey
.
Installation
git clone https://github.com/wingify/vwo-react-native-demo
cd vwo-react-native-demo
npm install
iOS
cd iOS
pod install
react-native run-ios
Android
react-native run-android
Enter ApiKey
You need to add an app to your VWO account. Please refer to Adding an App for details.
Copy your ApiKey
.
Run the app from Android Studio/Xcode.
After the app is running, click the Menu icon in the upper-left corner.

Select Enter API Key from the menu options and then type your API key.
Sorting Campaign
Showing a list of items is a common requirement for many apps.
How do you know what sequence is better? What better way to tell than to A/B test!
Defining Variation
Steps to run Sorting Campaign:
- Under Mobile App A/B, click Create Menu and then choose your App, platform and set test key to "sorting". Click Next for Variations screen.
- On the Variations screen, update the variation names as seen in the image below

In your app, click the Refresh icon located in the upper-right corner of the navigation bar.
This should change the sequence of items. Items are now sorted by price

Following code handles the A/B testing for Sorting campaign
sortPhoneList = async () => {
var newList = phoneList
const variation = await VWO.variationNameForTestKey("sorting")
if (variation == "Sort-Alphabetically") {
newList.sort(function(a,b) {
return ((a.name > b.name) ? 0 : -1 );
});
} else if (variation == "Sort-By-Price") {
newList.sort(function(a,b) {
return ((a.price > b.price) ? 0 : -1 );
});
}
this.setState({ phones: newList })
}
The code above does following things
- Get the variation name for campaign whose test key is "sorting"
- Depending on the variation name we decide if the sorting is to be done alphabetically or by price
- Once the list is sorted we reload the table data
Defining Goals
Click Next, and then define a goal using the following goal identifier.
We can see if the goals work correctly.
Click Verify.

Select your device from the drop-down menu.

On selecting any product (phone) from the list, you can see the product details.

When you select the product, Goal 1 becomes Verified.

This happens because, we have placed VWO.trackConversion( "productView")
code upon selecting a product.
If you want to verify the goal for variation, select Variation from the drop-down menu, select refresh in the app, and then repeat the same process.
Finalize Campaign
Click Next to move to the final stage of campaign creation. You can set percentage traffic allocation and then do advance targeting.
To start the campaign, click Finish.
Variable Campaign
How do you know what content would appeal to your users
This campaign helps us test various alerts by presenting various titles and content
Defining Variation
Steps to run Layout Campaign:
- Under Mobile App A/B, click Create and then choose your mobile app.
- In the Variations screen, create variable named heading and content of String type
- Set the values accordingly
- You can use the code generated on right side

After creating the variables add them to your campaign and set values accordingly

Select your device from the options(three dots), and then select Preview on Device.

In your app, click on any house in the list and you can verify the look and feel of all the variation
The variation section of the demo app will change.

Defining Goals
Click Next and then define a goal using the following goal identifier.
We can see if goals work correctly.
Click Verify.

From the device drop-down menu, select your device.

When you tap on upgrade button in the alert, the goal will get verified

This happens because , we have placed VWO.markConversionFor(goal: "upgrade-clicked")
code on tapping the upgrade button.
If you want to verify the goal for the variation, select Variation from the Control drop-down menu and then tap on Upgrade button in alert
Finalize Campaign
To move to the final stage of campaign creation, click Next. Now, you can set percentage traffic allocation and perform advance targeting.
To start the campaign, click Finish.