Comparing version 0.0.17 to 0.0.18
{ | ||
"name": "autotune", | ||
"version": "0.0.17", | ||
"version": "0.0.18", | ||
"description": "Automatically tune JavaScript apps", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -1,10 +0,10 @@ | ||
# autotune | ||
# autotune: automatic A/B testing for any app | ||
Everyone knows that A/B testing is critical to optimizing any app, but implementing tests and analyzing results can be awkward and time-consuming. | ||
As developers, we want adding A/B tests to any app to be as simple as adding a line of code. We also want machine learning algorithms to analyze our test results and optimize our app for us, automatically, without having to think twice about it. | ||
As developers, we want adding A/B tests to any app to be as simple as adding a line of code. We also want machine learning algorithms to analyze our test results and optimize our app for us, automatically, without having to think twice. | ||
This is why we created `autotune`. With `autotune`, you create special variables in your program that `autotune` will automatically tune over time to improve outcomes. | ||
This is why we created Autotune. With Autotune, you create special variables in your program that Autotune will automatically tune over time to improve outcomes. | ||
Not sure whether to require login for people to browse your app? Not sure what your main call-to-action should be, or what color to use for the button? Not sure which social sharing features will be most relevant for your audience? Just make a few good guesses for each, and let `autotune` automatically find the best decisions, then make them for you. | ||
Not sure what your main call-to-action should be, or what color to use for the button? Not sure which social sharing features will be most relevant for your audience? Just make a few good guesses and let Autotune automatically discover and make the best decisions. | ||
@@ -15,3 +15,3 @@ ## Examples | ||
Not sure if your main CTA should be `Log in` or `Sign in`? Let autotune pick the one that works best: | ||
Not sure if your main CTA should be `Log in` or `Sign in`? Let Autotune pick the one that works best: | ||
@@ -37,43 +37,2 @@ ```javascript | ||
### Where should we put pricing? | ||
Not sure if your pricing information should come before or after your customer testimonials? Let autotune pick the one that works best: | ||
```javascript | ||
import * as autotune from "autotune"; | ||
autotune.init("11397F73-FF90-4831-B7F7-85023F1741E4"); | ||
const PricingInfo = () => ( | ||
<div> | ||
... | ||
<button onClick={() => { autotune.complete(); buyNow(); }> | ||
Buy Now | ||
</button> | ||
</div> | ||
); | ||
const render = () => ( | ||
<div> | ||
<Header /> | ||
<ProductFeatures /> | ||
{ autotune.flipCoin("Pricing before customer stories?") ? ( | ||
<div> | ||
<PricingInfo /> | ||
<CustomerStories /> | ||
</div> | ||
) : ( | ||
<div> | ||
<CustomerStories /> | ||
<PricingInfo /> | ||
</div> | ||
)} | ||
<Footer /> | ||
</div> | ||
); | ||
``` | ||
Again, autotune will flip a coin to decide where pricing info should display, and over time | ||
will favor the layout that gets more users to click `Buy Now`. | ||
### Which hero message should we use? | ||
@@ -114,40 +73,1 @@ | ||
the app to use the title that causes the most users to click 'Sign in' over time. | ||
### Which changes will increase shopping cart totals? | ||
```js | ||
// Create an experiment | ||
const cartExperiment = autotune.experiment("Maximize cart total"); | ||
// Create some dependent variables | ||
const offerDiscount = cartExperiment.boolean("offer discount"); | ||
const discountAmount = cartExperiment.oneOf("discount amount", [ | ||
0.05, | ||
0.1, | ||
0.15, | ||
0.25 | ||
]); | ||
const couponColor = cartExperiment.oneOf("coupon color", [ | ||
"blue", | ||
"orange", | ||
"red" | ||
]); | ||
function renderUI() { | ||
if (offerDiscount) { | ||
displayCoupon( | ||
`We'd like to offer you a ${discountAmount * 100}% discount.`, | ||
{ color: couponColor } | ||
); | ||
} | ||
// ... | ||
} | ||
// ... elsewhere in the file | ||
function completePurchase(cart) { | ||
// Complete the experiment and specify its criterion | ||
cartExperiment.maximize(cart.total); | ||
// ... | ||
} | ||
``` |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
49914
71