A simple step by step guide to A/B testing

A/B Testing is a revolutionary technique for digital marketing, and a game-changer for testers to add value to the product directly.

A/B testing, which is also known as Split testing or Bucket testing is an experimentation technique used to assess the usability of a certain feature. It is usually conducted on two or more variants of the same application assigned to different user bases. It helps to identify the user interest, hence, helping the product to be more improvised as per the user’s needs. 

Why do you need A/B testing?

Before going into that, let’s discuss how a product becomes more popular and usable. How do you get new opportunities in your business? How can you make it more profitable? The answer lies in the effectiveness of the product, and it’s matchless marketing; using your marketing strategies in the right way is what sets a product apart. 

Now, the question is, how do we identify the best usable version of a product? That’s where the concept of A/B testing comes in. It’s simple – you can’t wild-guess the expected response. You will need enough real user data to understand the perspective of your audience. You run different experiments on different user bases to find out which is the best way to go. Then, you can evaluate your conversion funnel and marketing campaign to get data directly from your customers.

benefits of AB testing
Benefits of A/B testing

How do you plan an A/B test?

A/B Testing can be carried out on both web & mobile applications. For a certain feature, screen, webpage, or app, two or more variants are created, each with a different experimental feature. It could be a design-based experiment, functional experiment, or an experiment for optimizing clicks & conversions.

steps for planning AB testing
Steps in planning an A/B test

Today, we are going to look at some easy steps to get you started with split testing on the right foot, even if you can’t hire a professional to help you out. 

  1. Identifying areas of visitor activity
    First, we need to identify the areas of visitor activity that are to be improved. For instance, an e-commerce website analyzed the user traffic & found out that users visit the app, add items in their cart but a major chunk of users leaves the site when it asks to sign-up. So, the registration flow is where we need to improve in order to gain more customers and lower the dropout rate.
  2. Create variants on the basis of the hypothesis
    Taking the example of a registration flow for the hypothesis, we work on two possible solutions. One flow uses emails to register while the other uses phone numbers. This would be an experiment on ways to register. Another experiment could be on the input fields of the registration form – one form could contain fields that require the user to enter personal information, while the other form takes credit/debit card or COD information only. These were examples of two different approaches to create two different variants. Variants can be multiple, and totally different in nature and objective.
  3. Create user bases for variants
    Once the variants are created, the next step is to create different user bases. A user base is actually a group of users generally categorized on the basis of similar interests or causes. For instance, one group could be the users who opt for COD (cash on delivery) and another group could be those who prefer paying through credit/debit card. You can also group users on the basis of demographics, such as age, region, profession, etc.
  4. Testing variants with funnels
    In order to get statistical data, we need to create funnels before testing the user activity. These funnels are like checkpoints in your application to monitor the traffic.
  5. Choosing the right variant
    Analysis is the key. After all the data has been gathered, we need to analyze the results for making the right variant choice. The data is now systematically organized, plotted, metricized, and driven to a conclusion. The decision would be made on a win-win variant.
winner of an AB test

Boost your bottom line through A/B testing

Accurate and well-planned A/B tests can greatly improve your bottom line. Controlled experiments and the resulting data can help you figure out the exact marketing strategies that work best for your business. You are more likely to emphasize conducting A/B tests before running ad campaigns and promotions when you continually see that one variant performs one, two, three, or even four times better than the other. It’ll help you decide what works best and what doesn’t, so you can optimize your products, applications, and content accordingly.  

When you know what works well, it makes it easier for you to make decisions so you can craft more meaningful and impactful marketing collateral from the beginning. The key is to keep testing regularly so you can stay updated with what is effective for you. Remember, since the technology industry changes rapidly, the trends change as well. This means, what may work for you in one month, may not work as well in the next month. The effectiveness of a test change over time, so it’s important to continue testing regularly. 

Here are some tips to help make your A/B tests more effective and impactful:

  1. Test the right elements
    Designs & layouts, headlines & copy, forms, CTAs (Call to action), images, audios & videos, subject lines, product descriptions, social proofs, email marketing, media mentions, landing pages or navigations, etc. 
  2. Achieve milestones
    Improved conversion rates, more user traffic, higher number of views or subscriptions, increased number of downloads, improved sales, improved time on page, etc.
  3. Carry out multiple iterations
    A/B testing is not a one-time activity. It needs multiple iterations when experimenting with a variant. Ultimately, this will lead to a divergence or convergence point through metrics.
  4. Select the right tool
    Identify the tool which best fits your testing experiment. Different testing tools provide different kinds of testing expertise. You just have to choose the one which matches your requirement.

Which tools are the best for A/B testing?

It is essential to select the right tool with features to suit your experiment requirements. There are many tools available on the internet, both free and paid. Some of the more popular tools are:

  • Optimizely
  • VWO
  • Convert Experiences
  • SiteSpect
  • AB Tasty
  • Sentient Ascend
  • Google Optimize
  • Apptimize (for mobile apps)

Let me give you a quick walk-through of one of these tools, Google Optimize (free) to help you better understand how you can set it up to gather meaningful data and drive results that can help boost your business. 

How to setup Google Optimize for A/B testing?

  1. To start, you need to set up an account on Google Optimize. After logging in with your existing Google account (or creating a new one), it will ask you to add a browser extension. This will set up a container.

2. Start with creating an experiment. I have chosen a sample site, and my hypothesis is that the main page heading should be something catchy in order to get more conversions. 

create an experience in Google optimize

3. After adding the target URL, I’ll proceed to create variants. I made one variant where I changed the title and text of a button, and here we go:

4. Select the target audience. Google Optimize offers various options for this purpose:

5. Google Optimize uses Google Analytics to gather the user data. 


After you link your changes to analytics, next step is to deploy your code:

6. Setting the objective as ‘Improve conversion rate’, we’ll proceed to further Settings.

7. After the experiment has been rolled out for a certain time span and for the targeted user base, it’s time to find out the winner of the experiment. The reporting tab will help you to view the results:

NOTE: The above demonstration is just a quick overview. Google Optimize is itself a very thorough tool to work with. In order to explore it more, here is the link to view a short web series on this tool, which is really helpful.

Mistakes to avoid when performing an A/B test

  1. Use original and valid hypothesis & statistics
    Setting invalid hypotheses & using someone else’s app statistics to derive your app hypothesis can weaken your experimenting ground. The results might not be that helpful, hence wasting the time & effort to carry it all the way.
  2. Tackle one pain point at a time
    Avoid using too many testing elements together in a test. It might affect the accuracy of the results. Break the elements into smaller groups & pick one at a time.
  3. Consider internal & external factors
    Using unbalanced traffic, picking incorrect duration, and not considering the external factors can be the reason for the failure of your experiment. These indicators play a pivotal role in this activity hence need to be taken care of.
  4. Use the right tool
    Not using the right tool can be a risk too. The tools are customised for various purposes. Proper research and selecting the best fit is what makes it effective.

Wrapping up

Today, many industries are using A/B testing as a powerful tool to increase the audience viewership, subscription, and readership. Most talked about are Netflix, Amazon, Discovery, Booking.com, WallMonkeys, Electronics Arts (SimCity 5), Careem, etc. There are numerous other multi-domain industries which are using the A/B testing technique to get the best possible results.

If you’re looking to get started with A/B testing, you can set up a call with us and our experts will guide you about outsourcing A/B testing and easily reaping the results without investing your time or efforts. 

Pumped up to get started with your first A/B test? Awesome!

Don’t forget to share this blog and help spread the awesomeness!

Expo CLI vs. react-native CLI: Which is better for hybrid app development

Building a mobile app in native is a piece of cake but to publish an app on the app store & play store, you probably need to work twice as hard and write the same feature in two different languages i.e Kotlin for Android and Swift for iOS. Solution? Hybrid app development.

What if we write one code that can be used for both Android and iOS? Yes, you heard that right. React-Native is designed purposely to support the ‘write once and deploy anywhere’ paradigm. It was launched in 2015 by Facebook and it took the mobile development world by storm. At VentureDive, we experimented with React-Native to develop a new product, Muslims by IslamicFinder. If you are developing a new product and are not sure whether to go for hybrid or native app development, here’s a guide by one of our mobile experts that will help you make an informed decision: Hybrid vs. Native Mobile Development: Which Is Better?

In this blog, I will shed some light on which CLI did we choose while developing Muslims app,  and what were the reasons behind it. It will help you better understand how to go about choosing a CLI during hybrid app development. 

Tools for hybrid app development using react-native

There are a lot of Integrated Development Environments (IDEs) out there that can be used for the development of React-Native apps. However, the most frequently used is Visual Studio Code. It’s a lightweight tool that can be used in systems with low RAM space. Other stable IDEs that are popular with the developers’ community are Atom and WebStorm.

Languages for react-native

The good thing about React is that it can be used with multiple languages. Moreover, if you are coming from a web development background, you can certainly use the knowledge of HTML and CSS with Flexbox – a CSS module defined to make better layouts – which is used for User Interface (UI) development. The main supported languages are Javascript and Typescript, which are really easy to understand for all developers regardless of which domain (web or mobile) they are experts in. 

Selection of CLI

A Command Line Interface (CLI) is a visual interface where programmers can run commands to develop apps. Getting started with React-Native is a tricky thing since, in the beginning, you don’t have enough knowledge to make a CLI decision and this is the area where almost everyone makes a mistake. React-Native comes with two CLIs and you need to be absolutely certain about which one suits your requirements. The two CLIs are:

  1. Expo CLI
  2. React-Native CLI

Which CLI is better for hybrid app development?

That’s a million-dollar question and the answer lies within the overall requirements. There are certain limitations of both CLIs that could hamper your development efforts. If you choose to work with Expo CLI, you need to make sure that you understand its limitations and the same goes for React-Native CLI. While working on Muslims, a community engagement app by IslamicFinder, there were few requirements that were either not supported by Expo or it was not available with full configurational control. I have talked about them under ‘Expo Limitations’, below.

Expo limitations

When I started hybrid app development for Muslims, I wasn’t sure about which CLI I should choose but I knew one thing and that was: Expo makes it easier and faster to develop applications by handling all configurational changes, version conflicts, and certificates. It also signatures itself and provides a seamless way of deployment and debugging. That is all I needed as a newbie in React-Native to start, however, later I found out that Expo has some limitations as well:

  1. We cannot configure older versions of the Android/iOS operating system, for installation, using Expo.
  2. The executable size is large which can hurt the overall downloads.
  3. A lot of Firebase – a product by Google, that provides various services for app development –  products are not supported by Expo, for instance:
    • FCM, a Firebase service used for sending notifications to Android/iOS applications, is still not supported in iOS. 
    • Crashlytics, another Firebase service used to report crash events in the live environment, is not supported. Instead, you have to rely on Sentry, a paid tool for application monitoring and error tracking, for that.
  4. Video streaming player is available with very few configurable controls.
  5. Certain features cannot be tested on Expo’s client application. Instead, you need to make a build to test them. An example of such a feature is ‘Firebase Authentication’.
  6. Image caching libraries in Expo are not efficient enough to support apps like Instagram.
  7. You need to have a paid subscription for a faster build creation process, else you will have to wait for 45 to 60 minutes for the build, depending on the queue size. 
  8. Realm, an external database, is not supported by Expo.
  9. If any native module is required to be plugged in then this is not a possibility in Expo.
  10. Things appear to be working fine in the Expo client app but they are not when compiled and built as a standalone app.

React-native CLI limitations

The first thing which is very important to note here is that once you have decided to migrate or eject from Expo CLI to React-Native CLI during hybrid app development, there is no turning back since it’s an irreversible process. The good thing about React-Native CLI is that it gives you complete freedom to implement any third-party plugins you want with the liberty to customize any implementation. You are not bound or restricted with any version of React-Native or minimum OS version handling and you are free to create builds at any time without any need of having a subscription to Expo servers. Saying this, you might face a few issues as well:

  1. You would have to handle Expo versions yourself along with managing all certificates and fingerprints. 
  2. It will take extra effort to create builds for Android and iOS using their respective IDE’s where you will be handling all permissions and plugins using Gradle, a build automation tool for software development, for Android and Pods, a tool that manages dependencies and libraries, for iOS. 
  3. Overall development time will increase since you will now have to consider dependencies separately.
  4. You will miss the Over The Air (OTA) feature for sure if you want to update or fix any important bug without publishing it and reflecting it on end-users’ devices. This feature allows the developers to modify something in the live users’ application.
  5. You will need MAC hardware for the iOS build creation process which isn’t required with Expo.

Conclusion

With React-Native, one can easily develop a hybrid app for both Android and iOS with the same lines of code. However, the selection of the CLI is dependent on the requirements and feature set that is to be implemented. 

For beginners, I would recommend going with Expo since it will take a lot of your headache on itself, and later when you are more familiar with the React environment, you can always eject from Expo to Bareflow, which works similar to React-Native CLI but comes under Expo. 

In my opinion, React-Native CLI gives you more freedom, liberty, and control to express and experiment over your code, whereas, Expo binds you in a shell where you rely more on Expo dependencies. The choice is yours depending on your level of React expertise. 

icon-angle icon-bars icon-times