abby هي مكتبة اختبار PHP A/B بسيطة ولكنها قوية.
تتيح لك المكتبة إعداد الاختبارات ( التجارب ) ومجموعات التحكم والتنوع الخاصة بها بسهولة، وتتبع المستخدمين ، والحصول على إحصائيات تفصيلية (مثل أحجام العينات الموصى بها، وتحديد مدى ثقة نتائجك )، بما في ذلك ما إذا كانت التجربة قد حققت أهمية إحصائية .
يتم تحديد الفائز (والثقة) باستخدام إحصائيات بايزي، وحساب القيمة الاحتمالية لنتائجك للتحقق مما إذا كان من الممكن رفض الفرضية الصفرية. يتم أيضًا حساب الحد الأدنى لحجم العينة المصاحب باستخدام اختبار ثنائي للتحكم في معدل الاكتشاف الخاطئ.
abby خالية من التبعية، ولا تعتمد على قاعدة البيانات تمامًا، مما يعني أنها تعمل ببساطة مع البيانات التي تزودها بها، وتكشف لك عن مجموعة متنوعة من الأساليب لتخزين النتيجة في مساحة التخزين الخاصة بك من اختيارك.
composer require andreekeberg/ abby
// Setup a new Token instance
$ token = new abby Token ();
// If we can't find an existing token cookie, generate one and set tracking cookie
if (! $ token -> getValue ()) {
$ token -> generate ()-> setCookie ();
}
// Setup a User instance
$ user = new abby User ();
// Associate the token with our user
$ user -> setToken ( $ token );
// List of experiments associated with a tracking token
$ data = [
[
' id ' => 1 ,
' group ' => 1 ,
' viewed ' => true ,
' converted ' => false
]
];
// Loop through users existing experiments and add them to our user instance
foreach ( $ data as $ item ) {
// Setup experiment instance based on an existing experiment
$ experiment = new abby Experiment ([
' id ' => $ item [ ' id ' ]
]);
// Setup a group instance based on stored data
$ group = new abby Group ([
' type ' => $ item [ ' group ' ]
]);
// Add the experiment (including their group, and whether they have viewed and converted)
$ user -> addExperiment ( $ experiment , $ group , $ item [ ' viewed ' ], $ item [ ' converted ' ]);
}
// Experiment data
$ data = [
' id ' => 2
];
// Make sure the experiment isn't already in the users list
if (! $ user -> hasExperiment ( $ data [ ' id ' ])) {
// Setup a new experiment instance
$ experiment = new abby Experiment ([
' id ' => $ data [ ' id ' ]
]);
// Assign the user to either control or variation in the experiment
$ group = $ user -> assignGroup ( $ experiment );
// Add the experiment (including assigned group) to our user instance
$ user -> addExperiment ( $ experiment , $ group );
}
// Getting updated user experiment list
$ user -> getExperiments ();
// Store updated experiment list for our user
// Experiment data
$ data = [
' id ' => 1
];
// Record a view for the experiment in question
$ user -> setViewed ( $ data [ ' id ' ]);
// If the user is part of the variation group
if ( $ user -> inVariation ( $ data [ ' id ' ])) {
// Apply a custom class to an element, load a script, etc.
}
// Experiment data
$ data = [
' id ' => 1
];
// On a custom goal, check if user has viewed the experiment and define a conversion
if ( $ user -> hasViewed ( $ data [ ' id ' ])) {
$ user -> setConverted ( $ data [ ' id ' ]);
}
// Getting updated user experiment data
$ user -> getExperiments ();
// Store updated data for our user
// Setup experiment instance with stored results
$ experiment = new abby Experiment ([
' groups ' => [
[
' name ' => ' Control ' ,
' views ' => 3000 ,
' conversions ' => 300
],
[
' name ' => ' Variation ' ,
' views ' => 3000 ,
' conversions ' => 364
]
]
]);
// Retrieve the results
$ result = $ experiment -> getResult ();
// Get the winner
$ winner = $ result -> getWinner ();
/**
* Get whether we can be confident of the result (even if we haven't
* reached the minimum number of views for each variant)
*/
$ confident = $ result -> isConfident ();
/**
* Get the minimum sample size (number of views) required for each group to
* reach statistical significance, given the control groups current conversion
* rate (based on the configured minimumDetectableEffect)
*/
$ minimum = $ result -> getMinimumSampleSize ();
/**
* Get whether the results are statistically significant
*/
$ significant = $ result -> isSignificant ();
/**
* Get complete experiment result
*/
$ summary = $ result -> getAll ();
اقرأ إرشادات المساهمة.
ارجع إلى سجل التغيير للحصول على التاريخ الكامل للمشروع.
abby مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.