Maximize conversions by building better experiences
Experiment, optimize, and improve conversions on any part of your digital presence with server-side experiments and roll them out behind feature flags without breaking user experience.
Thousands of global brands trust VWO for their A/B tests and feature management
Built to help you optimize a diverse set of business goals
Optimize search infrastructure to improve click-through rates
A/B test different indexing methods or search-as-a-service vendors to optimize your search infrastructure and achieve lower response times, relevant search results, and contextual autocomplete suggestions.
Recommend content that catches your audience
Experiment to determine the best analysis systems for thumbnails, such as aesthetic visual analysis (AVA), and improve your watch times
Optimize pricing tier options to increase orders
Analytically determine the best pricing tier options with different features of your business to hit the right spot between the number of subscriptions and the value of subscriptions.
Experiment with different delivery/shipping fees
Assess the right delivery or shipping fee to charge to your customers without impacting the top-line revenue of your business.
Enhance security without impacting user experience
Experiment with different password policies at sign-up to enhance security without increasing user drop-offs during account creation.
Choose the better two-factor authentication method
Discover which two-factor authentication techniques are most preferred by your users for their logins.
Schedule release of new features
Create release schedules according to your business requirements to ensure new features are open to specific target groups at the right time.
Rollback features immediately on negative impact *coming soon
Automatically roll back features when a release affects your guardrail metrics negatively to keep the user experience intact.
Optimize strategically with the precision of data-backed decisions
Reliably assess whether your test variations are likely to outperform, underperform, or match the baseline with VWO's accurate, real-time Bayesian-stats-based reports that can handle peeking and multiple testing errors.
Collaborate easily
Share experiment reports via email links, export concise summaries or detailed reports as a CSV, and even print reports to facilitate collaboration.
Optimize any metric from your tech stack
Handpick any metric you wish to optimize, whether standard or custom, and even events from CDPs. Define the direction of improvement and the region of practical equivalence to get accurate conversion performance of each variation.
NextTest with business safety *Coming Soon
Ensure your optimization experiments do not impact critical business KPIs negatively by enabling guardrail metrics. Automatically pause experiments when your guardrail metrics get negatively impacted.
NextUncover granular insights with filters
Filter experiment reports by default options, environments, or custom dimensions for actionable insights. Tailor report views and compare metrics for a complete analysis.
NextMake confident decisions backed by data
Bayesian-powered Sequential SmartStats gives you precise, trustworthy results for each variation by assessing the likeliness of the variation to outperform, underperform, or match the baseline.
NextDisable non-performing variations
You can choose any variation as the baseline and disable variations in campaigns when necessary to get results faster.
NextDeliver winning experiences with robust server-side experimentation and phased releases
Optimize every part of your digital presence with data-driven experiment results, refine your offerings, and progressively roll out features.
Optimize both form and function
Lightweight SDKs in 8+ languages that support both front-end and back-end to enable optimization of key metrics that impact any part of your tech stack.
Scale your experimentation efforts worry-free
Use as many projects, environments, and feature flags as needed to scale your optimization program and confidently ship complex features.
Clean, reliable, real-time reports
Reliable Bayesian-stats-based, environment-specific reports without traffic from bot user agents and malicious IPs that give you clear, unpolluted decisions.
Roll out feature enhancements in phases
Release enhancements to targeted groups first, validate functionality, and only then expand to 100% audience.
Our SDKs enable quick, private, and reliable server-side optimization
VWO offers lightweight SDKs that are easy to integrate and enable cross-platform optimization at high speeds.
Our range of open-source SDKs supports both front-end and back-end optimization and can be quickly initialized by your dev team.
View SDK RecipesSDKs execute API decisions without requiring any external calls to ensure minimum latency and maximum speed.
Learn moreDetailed developer documentation for each SDK and specific methods within SDKs that ensure you rarely face roadblocks.
View SDKsOur SDKs maintain uniformity for users within campaigns, ensuring they consistently experience the same test variation once they become part of a campaign.
How SDKs workGet started in minutes
Our range of open-source SDKs supports both front-end and back-end optimization and can be quickly initialized by your dev team.
View SDK Recipes//Import the VWO Node SDK to use its features for server-side A/B testing and tracking.const vwoSDK = require('vwo-node-sdk');
// Asynchronously fetch the settings file from VWO servers using your account ID and SDK key.// The settings file contains all the campaign configurations and is essential for the SDK's operationconst settingsFile = await vwoSDK.getSettingsFile(accountId, sdkKey)
// Initialize the VWO SDK instance with the fetched settings file.const vwoClientInstance = vwoSDK.launch({settingsFile // The settings file obtained from VWO servers.});
// Activate a specific campaign for a user. This determines which variation of the campaign the user should see. The method returns the name of the variation assigned to the user.const variationName = vwoClientInstance.activate(campaignKey, userId);
// Track a conversion (or goal achievement) for a user in a campaign. It is used to record when a user performs a significant action, like making a purchase or clicking a button, contributing to the campaign's success metrics.vwoClientInstance.track(campaignKey, userId, goalIdentifier);
//Import the VWO PHP SDK to use its features for server-side A/B testing and tracking.require_once('vendor/autoload.php');use vwo\VWO;
// Asynchronously fetch the settings file from VWO servers using your account ID and SDK key.// The settings file contains all the campaign configurations and is essential for the SDK's operation$settingsFile = VWO::getSettingsFile(accountId, sdkKey)$sdkConfig = ['settingsFile' => $settingsFile];
// Initialize the VWO SDK instance with the fetched settings file.$vwoClientInstance = newVWO($sdkConfig) // The settings file obtained from VWO servers.
// Activate a specific campaign for a user. This determines which variation of the campaign the user should see. The method returns the name of the variation assigned to the user.$variationName = $vwoClientInstance->activate($campaignKey, $userId, $options);
// Track a conversion (or goal achievement) for a user in a campaign. It is used to record when a user performs a significant action, like making a purchase or clicking a button, contributing to the campaign's success metrics.$vwoClientInstance->track($campaignKey, $userId, $goalIdentifier, $options);
//Import the VWO Python SDK to use its features for server-side A/B testing and tracking.import vwo
// Asynchronously fetch the settings file from VWO servers using your account ID and SDK key.// The settings file contains all the campaign configurations and is essential for the SDK's operationsettings_file = vwo.get_settings_file(account_id, sdk_key)
// Initialize the VWO SDK instance with the fetched settings file.vwo_client_instance = vwo.launch(settings_file)// The settings file obtained from VWO servers.
// Activate a specific campaign for a user. This determines which variation of the campaign the user should see. The method returns the name of the variation assigned to the user.variation_name = vwo_client_instance.activate(campaign_key, user_id);
// Track a conversion (or goal achievement) for a user in a campaign. It is used to record when a user performs a significant action, like making a purchase or clicking a button, contributing to the campaign's success metrics.vwo_client_instance.track(campaign_key, user_id, goal_identifeir);
//Import the VWO Javascript SDK to use its features for server-side A/B testing and tracking.const vwoSDK = require('vwo-node-sdk');
// Asynchronously fetch the settings file from VWO servers using your account ID and SDK key.// The settings file contains all the campaign configurations and is essential for the SDK's operationconst settingsFile = await vwoSDK.getSettingsFile(accountId, sdkKey)
// Initialize the VWO SDK instance with the fetched settings file.const vwoClientInstance = vwoSDK.launch({settingsFile // The settings file obtained from VWO servers.});
// Activate a specific campaign for a user. This determines which variation of the campaign the user should see. The method returns the name of the variation assigned to the user.const variationName = vwoClientInstance.activate(campaignKey, userId);
// Track a conversion (or goal achievement) for a user in a campaign. It is used to record when a user performs a significant action, like making a purchase or clicking a button, contributing to the campaign's success metrics.vwoClientInstance.track(campaignKey, userId, goalIdentifier);
//Import the VWO .Net SDK to use its features for server-side A/B testing and tracking.cusing VWOSdk;
// Asynchronously fetch the settings file from VWO servers using your account ID and SDK key.// The settings file contains all the campaign configurations and is essential for the SDK's operationSettings settingsFile = VWO.GetSettings(accountId, sdkKey)
// Initialize the VWO SDK instance with the fetched settings file.IVWOClient vwoClientInstance = VWO.Launch(settingsFile);public static Dictionary options = new Dictionary(){};
// Activate a specific campaign for a user. This determines which variation of the campaign the user should see. The method returns the name of the variation assigned to the user.string variationName = vwoClientInstance.Activate(campaignKey, userId, options);
// Track a conversion (or goal achievement) for a user in a campaign. It is used to record when a user performs a significant action, like making a purchase or clicking a button, contributing to the campaign's success metrics.vwoClientInstance.Track(campaignKey, userId, goalIdentifier, options);
//Import the VWO Java SDK to use its features for server-side A/B testing and tracking.import com.vwo.VWO;
// Asynchronously fetch the settings file from VWO servers using your account ID and SDK key.// The settings file contains all the campaign configurations and is essential for the SDK's operationString settingsFile = VWO.getSettingsFile(accountId, sdkKey)
// Initialize the VWO SDK instance with the fetched settings file.VWO vwoClientInstance = VWO.launch(settingsFile).build();// The settings file obtained from VWO servers.
// Activate a specific campaign for a user. This determines which variation of the campaign the user should see. The method returns the name of the variation assigned to the user.String variationName = vwoClientInstance.activate(campaignKey, userId, options);
// Track a conversion (or goal achievement) for a user in a campaign. It is used to record when a user performs a significant action, like making a purchase or clicking a button, contributing to the campaign's success metrics.vwoClientInstance.track(campaignKey, userId, goalIdentifier, options);
//Import the VWO Ruby SDK to use its features for server-side A/B testing and tracking.require 'vwo'
// Asynchronously fetch the settings file from VWO servers using your account ID and SDK key.// The settings file contains all the campaign configurations and is essential for the SDK's operationvwo_client_instance = VWO.new(config['account_id'], config['sdk_key'], nil, nil, false)
// Initialize the VWO SDK instance with the fetched settings file.options = {}
// Activate a specific campaign for a user. This determines which variation of the campaign the user should see. The method returns the name of the variation assigned to the user.variation_name = vwo_client_instance.activate(campaign_key, user_id, options);
// Track a conversion (or goal achievement) for a user in a campaign. It is used to record when a user performs a significant action, like making a purchase or clicking a button, contributing to the campaign's success metrics.vwo_client_instance.track(campaign_key, user_id, goal_identifier, options);
//Import the VWO GO SDK to use its features for server-side A/B testing and tracking.import vwo "github.com/wingify/vwo-go-sdk"
// Asynchronously fetch the settings file from VWO servers using your account ID and SDK key.// The settings file contains all the campaign configurations and is essential for the SDK's operationsettingsFile := vwo.GetSettingsFile("accountId", "SDKKey")
// Initialize the VWO SDK instance with the fetched settings file.vwoClientInstance, err := vwo.Launch(settingsFile) // The settings file obtained from VWO servers.
// Activate a specific campaign for a user. This determines which variation of the campaign the user should see. The method returns the name of the variation assigned to the user.variationName = vwoClientInstance.Activate(campaignKey, userId, options);
// Track a conversion (or goal achievement) for a user in a campaign. It is used to record when a user performs a significant action, like making a purchase or clicking a button, contributing to the campaign's success metrics.vwoClientInstance.Track(campaignKey, userId, goalIdentifier, options);
Exceptional Speed
SDKs execute API decisions without requiring any external calls to ensure minimum latency and maximum speed.
Learn moreComprehensive developer documentation
Detailed developer documentation for each SDK and specific methods within SDKs that ensure you rarely face roadblocks.
View SDKsEnsure experience continuity
Our SDKs maintain uniformity for users within campaigns, ensuring they consistently experience the same test variation once they become part of a campaign.
How SDKs workAn arsenal of features that help you experiment the way you want
VWO offers you the flexibility and sophistication to run comprehensive server-side campaigns and improve conversions.
Tech Debt Management
Detection of unused flags in the code base and alerting with exact repository the flag was found to nudge the deletion of such flags. Integrates with CI/CD pipeline including Jenkins.
Unified testing strategy
Enable hybrid testing with SDKs that support both front-end and back-end to enable tracking client-side metrics on your server-side campaigns as well.
Understand user behavior
Seamlessly integrate behavior analytics with server-side campaigns such as feature tests and rollouts to understand visitor behavior specific to experiment variations.
Streamline your experiments
Exclude visitors involved in server-side product experiments from your client-side tests and vice versa to streamline your experiments.
Empower your whole organization with the right experimentation application
Comprehensive experimentation that is easy to set up and scale
Initialize SDKs and get started with server-side experiments in minutes. VWO's support for as many projects and environments as you need makes scaling experimentation a breeze.
Experiment flexibly
Create any server-side optimization campaign in a jiffy with a simple, easy-to-use UI
Experiment flexibly
Create any server-side optimization campaign in a jiffy with a simple, easy-to-use UI
Choose any metric you wish to optimize
Choose the metrics you want to optimize, and define the direction of improvement and region of practical equivalence to configure minimum conversion uplift. Add the relevant code snippet to your code base to start tracking the metric. You can even create custom metrics or import events from CDPs like Data360 or Segment.
Explore metricsTailor your test audience
Segment your experiment audience with laser precision using any data - custom variables, OS, behavior, and even third-party events. Craft complex segments using logical operators (AND, OR) and parentheses, save them and repeat your targeting magic across campaigns.
Explore audience selectionReports that facilitate decision-making
VWO’s Sequential SmartStats, fueled by Bayesian logic, gauges variations against the baseline. Get the likeliness of each variation to outperform or underperform the baseline. Use report filters for segment-specific analysis and easily toggle between environment-specific and overall reporting.
Explore VWO ReportsRoll out enhancements with confidence
Roll out feature enhancements in a phased manner to a selected audience. Assess the impact of the release and release the feature to 100% of users after ensuring there are no code breaks or performance issues.
Leverage the benefits of experimentation across the breadth of your tools
VWO offers integration with tools spanning different categories such as analytics, CMS, call tracking, Data Warehousing, Customer Data Platform (CDP), e-commerce, marketing, productivity, and storage services.
- Import events from external sources, such as customer data platforms, and use them in your optimization campaigns.
- Run server-side optimization campaigns on headless CMS such as Contenful seamlessly.
- Send experimentation data seamlessly using our SDK's callback functions (Node.js) and class methods (Python, Ruby, etc) to analytics tools like Google Analytics, Mixpanel, Amplitude, data warehouses like Amazon Redshift, Google BigQuery, Snowflake, and CDP systems like Segment.com, mParticle.
- API-based integrations for your custom applications.
“The VWO-Contentful Integration was the biggest feature that appealed to us. We previously used engineering resources to launch every server-side A/B test. Given our team's large ambitions and limited engineering resources, we could only launch ~1 test every 14-20 days. With the VWO-Contentful integration, we removed the engineering dependency for setting up and launching front-end experiments.”Nijanth VelmanikandanGrowth Product Manager at Human Interest
Human Interest used zero-latency server-side testing to improve conversions on lead forms
Customer StoryRun tests on your entire stack with our omnichannel testing products
VWO empowers you to run tests on web, mobile app and server-side.
Drive your entire optimization program with VWO
Pair Testing with our end-to-end experience optimization platform to enable a data-driven experimentation culture in your business.
Collaboratively build your optimization pipeline
Build a pipeline of high-impact experimentation ideas, collaborate efficiently, and see them to completion. Build a Kanban board workflow with observations to feed your testing and personalization campaigns. Add team members without restrictions and run your optimization program like a breeze.
Explore VWO PlanGet enterprise-grade security and support from day one
Work confidently, knowing that we have always got your back for your security and support. Build and scale your testing programs with ease.
Your data is safe and secure with us
We value our customers' trust in our platform. Hence, we try our best to comply with security and privacy mandates across physical and digital geographies.
Explore Privacy & SecurityTwo-factor authentication (2FA)
Enhance VWO account security with two-factor authentication at the user or workspace level using authenticator apps or email passcodes.
Data storage
VWO has data centers in the US, the EU (Belgium), and India. Our CDN uses a load balancer, is hosted on Google Cloud Platform, and spans 10 locations from Japan to Brazil for faster loading.
Dedicated customer success manager
Leverage our training programs and dedicated success manager to optimize your website for better conversions.
Support with a constant CSAT of ~99%
You can count on us all year round for your most minor query while running the most complex experiments. Our technical experts will guide you all year round.
Single sign-on (SSO)
Log into VWO securely and conveniently using SAML 2.0-based single sign-on via identity providers like Google, Azure Cloud, OneLogin, Okta, and others.
Role-based permissions
Get Sub-accounts and varying levels of user permissions to bifurcate testing for client/agency and role division for the enterprise.
Delight your users by giving them a great experience. Start optimizing today!
Frequently Asked Questions
Server-side testing is a method of A/B testing wherein the variations of a particular test are rendered directly from the server & then deliberately sent to the visitors’ device.
A feature is an addition or modification to the system that adds new functionality. A product’s features define it and set it apart from other similar products. From a business perspective, a feature should have characteristics that make it practical, easy to use, and efficient.
A feature flag is a software development approach that allows for the remote activation or deactivation of functionality without the need for code deployment. With feature flags, it is possible to introduce new features at runtime without additional code.
A feature flag can regulate access, for instance, if new features are made accessible to internal users for testing and feedback. The functionality is only visible to employees connected to the program using a corporate email address. Feature flags enable you to classify risk and manage components. By separating deployment from release, feature flags enable you to control a feature’s entire lifespan and opt for secure testing in production mode.
Feature testing is the procedure that is performed when a new feature is introduced to the application, or an existing feature is modified. It can also be defined as the process used to test several iterations of the feature to find the most successful version that offers the greatest user experience.
VWO SDKs are directly integrated with your servers and make no external calls to return variations to be assigned to users. The entire decision time is less than 50ms and will have no noticeable impact on your page loads.