Add A/B Test
setSettings
ACL
$analytics->addABTest(array abTest)
About this method
We released a new version of the PHP API client in public beta. Read the beta documentation for more information.
We released a new version of the JavaScript API client in public beta. Read the beta documentation for more information.
We released a new version of the Java API client in public beta. Read the beta documentation for more information.
You’re currently reading the JavaScript API client v4 documentation. Check the migration guide to learn how to upgrade from v3 to v4. You can still access the v3 documentation.
You’re currently reading the Ruby API client v2 documentation. Check the migration guide to learn how to upgrade from v1 to v2. You can still access the v1 documentation.
Create an A/B test.
You can set an A/B test on two different indices with different settings, or on the same index with different search parameters by providing a customSearchParameters setting on one of the variants.
Examples
Read the Algolia CLI documentation for more information.
Add an A/B test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$endDate = new \DateTime('tomorrow');
$endDate = $endDate->format('Y-m-d\TH:i:s\Z');
$analytics = AnalyticsClient::create(
'YourApplicationID',
'YourWriteAPIKey'
);
$analytics->addABTest([
'name' => 'myABTest',
'variants' => [
[
'index' => 'indexName1',
'trafficPercentage' => 90,
'description' => 'a description'
],
[
'index' => 'indexName1-alt',
'trafficPercentage' => 10
],
],
"endAt" => $endDate,
]);
Add an A/B test on a single index with custom search parameters
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$endAt = new DateTime('tomorrow');
$abTest = [
'name' => 'myABTest',
'variants' => [
['index' => 'indexName1', 'trafficPercentage' => 90],
[
'index' => 'indexName1',
'trafficPercentage' => 10,
'customSearchParameters' => ['ignorePlurals' => true],
],
],
'endAt' => $endAt->format('Y-m-d\TH:i:s\Z'),
];
$response = $analyticsClient->addABTest($abTest);
Parameters
abTest
|
type: abTest object
Required
The definition of the A/B test { "name": name, "variants": variants, "endAt": endAt } |
âž” abTest object
name
|
type: string
Required
Name of the A/B test |
variants
|
type: list of variant
Required
List of 2 variants:
[ { "index": index, "description": description, "trafficPercentage": trafficPercentage }, { "index": index, "description": description, "trafficPercentage": trafficPercentage, "customSearchParameters": customSearchParameters } ] |
endAt
|
type: string
Optional
A date to automatically end an A/B test at a specific time.
The date should be in the following format: |
variants âž” variant
index
|
type: string
Required
Index name |
trafficPercentage
|
type: integer
Required
Percentage of the traffic that should be going to the variant. The sum of the percentage should be equal to 100. |
customSearchParameters
|
type: key/value mapping
Optional
Applies search parameters on a variant. This can only be used if the two variants are using the same index. Can be one or sereval of the following parameters: Search
Typo tolerance
Facets Synonyms Personalization Distinct Geo search |
description
|
type: string
Optional
Description of the variant. This is useful when seeing the results in the dashboard or via the API. |
Response
This section shows the JSON response returned by the API. Since each language encapsulates this response inside objects specific to that language and/or implementation, the actual type in your language might differ from what’s written here. You can view the response in the logs (using the getLogs
method).
JSON format
1
2
3
4
5
{
"abTestID": 78,
"taskID": 111885720
"index": "atis-abtest-default",
}
abTestID
|
integer
Generated Id of the A/B test. |
taskID
|
integer
The taskID used with the waitTask method. |
index
|
string
Base index name for the A/B test. |