abby
1.1.1
abby 간단하지만 강력한 PHP A/B 테스트 라이브러리입니다.
라이브러리를 사용하면 테스트( 실험 ), 해당 제어 및 변형 그룹을 쉽게 설정하고, 사용자를 추적하고, 실험이 통계적 유의성을 달성했는지 여부를 포함하여 자세한 통계(예: 권장 샘플 크기, 결과 의 신뢰도 결정)를 얻을 수 있습니다.
승자(및 신뢰도)는 귀무 가설이 기각될 수 있는지 확인하기 위해 결과의 p-값을 계산하는 베이지안 통계를 사용하여 결정됩니다. 잘못된 발견 비율을 제어하기 위해 양측 테스트를 사용하여 수반되는 최소 샘플 크기도 계산됩니다.
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 MIT 라이센스에 따라 라이센스가 부여되었습니다.