using Auth0.ManagementApi;
using System.Threading.Tasks;
using Auth0.ManagementApi.Experimentation;
using System.Collections.Generic;
public partial class Examples
{
public async Task Example() {
var client = new ManagementApiClient(
token: "<token>",
clientOptions: new ClientOptions { BaseUrl = "https://{YOUR_DOMAIN}/api/v2" }
);
await client.Experimentation.Experiments.CreateAsync(
new CreateExperimentRequestContent {
Name = "name",
FeatureFlagId = "feature_flag_id",
AuthenticationFlow = "authentication_flow",
AllocationStrategy = AllocationStrategyEnum.Percentage,
AssignmentConfig = new AssignmentConfig {
Subject = SubjectEnum.Device
},
Allocations = new List<AllocationRequestItem>(){
new AllocationRequestItem {
VariationId = "variation_id",
IsControl = true
},
}
}
);
}
}
package com.example.usage;
import com.auth0.client.mgmt.ManagementApi;
import com.auth0.client.mgmt.experimentation.types.CreateExperimentRequestContent;
import com.auth0.client.mgmt.types.AllocationRequestItem;
import com.auth0.client.mgmt.types.AllocationStrategyEnum;
import com.auth0.client.mgmt.types.AssignmentConfig;
import com.auth0.client.mgmt.types.SubjectEnum;
import java.util.Arrays;
public class Example {
public static void main(String[] args) {
ManagementApi client = ManagementApi
.builder()
.domain("{YOUR_DOMAIN}")
.token("<token>")
.build();
client.experimentation().experiments().create(
CreateExperimentRequestContent
.builder()
.name("name")
.featureFlagId("feature_flag_id")
.authenticationFlow("authentication_flow")
.allocationStrategy(AllocationStrategyEnum.PERCENTAGE)
.assignmentConfig(
AssignmentConfig
.builder()
.subject(SubjectEnum.DEVICE)
.build()
)
.allocations(
Arrays.asList(
AllocationRequestItem
.builder()
.variationId("variation_id")
.isControl(true)
.build()
)
)
.build()
);
}
}<?php
namespace Example;
use Auth0\SDK\API\Management\Wrapper\ManagementClient;
use Auth0\SDK\API\Management\Wrapper\ManagementClientOptions;
use Auth0\SDK\API\Management\Experimentation\Experiments\Requests\CreateExperimentRequestContent;
use Auth0\SDK\API\Management\Types\AllocationStrategyEnum;
use Auth0\SDK\API\Management\Types\AssignmentConfig;
use Auth0\SDK\API\Management\Types\SubjectEnum;
use Auth0\SDK\API\Management\Types\AllocationRequestItem;
$client = new ManagementClient(new ManagementClientOptions(
domain: '{YOUR_DOMAIN}',
token: '<token>',
));
$client->experimentation->experiments->create(
new CreateExperimentRequestContent([
'name' => 'name',
'featureFlagId' => 'feature_flag_id',
'authenticationFlow' => 'authentication_flow',
'allocationStrategy' => AllocationStrategyEnum::Percentage->value,
'assignmentConfig' => new AssignmentConfig([
'subject' => SubjectEnum::Device->value,
]),
'allocations' => [
new AllocationRequestItem([
'variationId' => 'variation_id',
'isControl' => true,
]),
],
]),
);
from auth0.management import ManagementClient, AssignmentConfig, AllocationRequestItem
client = ManagementClient(
domain="{YOUR_DOMAIN}",
token="<token>",
)
client.experimentation.experiments.create(
name="name",
feature_flag_id="feature_flag_id",
authentication_flow="authentication_flow",
allocation_strategy="percentage",
assignment_config=AssignmentConfig(
subject="device",
),
allocations=[
AllocationRequestItem(
variation_id="variation_id",
is_control=True,
)
],
)
require "auth0"
client = Auth0::Management.new(token: "<token>", base_url: "https://{YOUR_DOMAIN}/api/v2")
client.experimentation.experiments.create(
name: "name",
feature_flag_id: "feature_flag_id",
authentication_flow: "authentication_flow",
allocation_strategy: "percentage",
assignment_config: {
subject: "device"
},
allocations: [{
variation_id: "variation_id",
is_control: true
}]
)
curl --request POST \
--url https://{tenantDomain}/api/v2/experimentation/experiments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"allocations": [
{
"is_control": true,
"variation_id": "<string>",
"is_fallback": true,
"priority": 2,
"segment_id": "<string>",
"weight": 50
}
],
"assignment_config": {
"subject": "device"
},
"authentication_flow": "<string>",
"feature_flag_id": "<string>",
"name": "<string>",
"description": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
allocations: [
{
is_control: true,
variation_id: '<string>',
is_fallback: true,
priority: 2,
segment_id: '<string>',
weight: 50
}
],
assignment_config: {subject: 'device'},
authentication_flow: '<string>',
feature_flag_id: '<string>',
name: '<string>',
description: '<string>'
})
};
fetch('https://{tenantDomain}/api/v2/experimentation/experiments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{tenantDomain}/api/v2/experimentation/experiments"
payload := strings.NewReader("{\n \"allocations\": [\n {\n \"is_control\": true,\n \"variation_id\": \"<string>\",\n \"is_fallback\": true,\n \"priority\": 2,\n \"segment_id\": \"<string>\",\n \"weight\": 50\n }\n ],\n \"assignment_config\": {\n \"subject\": \"device\"\n },\n \"authentication_flow\": \"<string>\",\n \"feature_flag_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"allocations": [
{
"is_control": true,
"is_fallback": true,
"priority": 123,
"segment_id": "<string>",
"variation_id": "<string>",
"weight": 123
}
],
"assignment_config": {
"subject": "device"
},
"authentication_flow": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"feature_flag_id": "<string>",
"id": "<string>",
"is_valid": true,
"name": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z"
}Créer une expérience
Créer une nouvelle expérience avec des allocations de trafic pour des tests A/B.
using Auth0.ManagementApi;
using System.Threading.Tasks;
using Auth0.ManagementApi.Experimentation;
using System.Collections.Generic;
public partial class Examples
{
public async Task Example() {
var client = new ManagementApiClient(
token: "<token>",
clientOptions: new ClientOptions { BaseUrl = "https://{YOUR_DOMAIN}/api/v2" }
);
await client.Experimentation.Experiments.CreateAsync(
new CreateExperimentRequestContent {
Name = "name",
FeatureFlagId = "feature_flag_id",
AuthenticationFlow = "authentication_flow",
AllocationStrategy = AllocationStrategyEnum.Percentage,
AssignmentConfig = new AssignmentConfig {
Subject = SubjectEnum.Device
},
Allocations = new List<AllocationRequestItem>(){
new AllocationRequestItem {
VariationId = "variation_id",
IsControl = true
},
}
}
);
}
}
package com.example.usage;
import com.auth0.client.mgmt.ManagementApi;
import com.auth0.client.mgmt.experimentation.types.CreateExperimentRequestContent;
import com.auth0.client.mgmt.types.AllocationRequestItem;
import com.auth0.client.mgmt.types.AllocationStrategyEnum;
import com.auth0.client.mgmt.types.AssignmentConfig;
import com.auth0.client.mgmt.types.SubjectEnum;
import java.util.Arrays;
public class Example {
public static void main(String[] args) {
ManagementApi client = ManagementApi
.builder()
.domain("{YOUR_DOMAIN}")
.token("<token>")
.build();
client.experimentation().experiments().create(
CreateExperimentRequestContent
.builder()
.name("name")
.featureFlagId("feature_flag_id")
.authenticationFlow("authentication_flow")
.allocationStrategy(AllocationStrategyEnum.PERCENTAGE)
.assignmentConfig(
AssignmentConfig
.builder()
.subject(SubjectEnum.DEVICE)
.build()
)
.allocations(
Arrays.asList(
AllocationRequestItem
.builder()
.variationId("variation_id")
.isControl(true)
.build()
)
)
.build()
);
}
}<?php
namespace Example;
use Auth0\SDK\API\Management\Wrapper\ManagementClient;
use Auth0\SDK\API\Management\Wrapper\ManagementClientOptions;
use Auth0\SDK\API\Management\Experimentation\Experiments\Requests\CreateExperimentRequestContent;
use Auth0\SDK\API\Management\Types\AllocationStrategyEnum;
use Auth0\SDK\API\Management\Types\AssignmentConfig;
use Auth0\SDK\API\Management\Types\SubjectEnum;
use Auth0\SDK\API\Management\Types\AllocationRequestItem;
$client = new ManagementClient(new ManagementClientOptions(
domain: '{YOUR_DOMAIN}',
token: '<token>',
));
$client->experimentation->experiments->create(
new CreateExperimentRequestContent([
'name' => 'name',
'featureFlagId' => 'feature_flag_id',
'authenticationFlow' => 'authentication_flow',
'allocationStrategy' => AllocationStrategyEnum::Percentage->value,
'assignmentConfig' => new AssignmentConfig([
'subject' => SubjectEnum::Device->value,
]),
'allocations' => [
new AllocationRequestItem([
'variationId' => 'variation_id',
'isControl' => true,
]),
],
]),
);
from auth0.management import ManagementClient, AssignmentConfig, AllocationRequestItem
client = ManagementClient(
domain="{YOUR_DOMAIN}",
token="<token>",
)
client.experimentation.experiments.create(
name="name",
feature_flag_id="feature_flag_id",
authentication_flow="authentication_flow",
allocation_strategy="percentage",
assignment_config=AssignmentConfig(
subject="device",
),
allocations=[
AllocationRequestItem(
variation_id="variation_id",
is_control=True,
)
],
)
require "auth0"
client = Auth0::Management.new(token: "<token>", base_url: "https://{YOUR_DOMAIN}/api/v2")
client.experimentation.experiments.create(
name: "name",
feature_flag_id: "feature_flag_id",
authentication_flow: "authentication_flow",
allocation_strategy: "percentage",
assignment_config: {
subject: "device"
},
allocations: [{
variation_id: "variation_id",
is_control: true
}]
)
curl --request POST \
--url https://{tenantDomain}/api/v2/experimentation/experiments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"allocations": [
{
"is_control": true,
"variation_id": "<string>",
"is_fallback": true,
"priority": 2,
"segment_id": "<string>",
"weight": 50
}
],
"assignment_config": {
"subject": "device"
},
"authentication_flow": "<string>",
"feature_flag_id": "<string>",
"name": "<string>",
"description": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
allocations: [
{
is_control: true,
variation_id: '<string>',
is_fallback: true,
priority: 2,
segment_id: '<string>',
weight: 50
}
],
assignment_config: {subject: 'device'},
authentication_flow: '<string>',
feature_flag_id: '<string>',
name: '<string>',
description: '<string>'
})
};
fetch('https://{tenantDomain}/api/v2/experimentation/experiments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{tenantDomain}/api/v2/experimentation/experiments"
payload := strings.NewReader("{\n \"allocations\": [\n {\n \"is_control\": true,\n \"variation_id\": \"<string>\",\n \"is_fallback\": true,\n \"priority\": 2,\n \"segment_id\": \"<string>\",\n \"weight\": 50\n }\n ],\n \"assignment_config\": {\n \"subject\": \"device\"\n },\n \"authentication_flow\": \"<string>\",\n \"feature_flag_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"allocations": [
{
"is_control": true,
"is_fallback": true,
"priority": 123,
"segment_id": "<string>",
"variation_id": "<string>",
"weight": 123
}
],
"assignment_config": {
"subject": "device"
},
"authentication_flow": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"feature_flag_id": "<string>",
"id": "<string>",
"is_valid": true,
"name": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z"
}Autorisations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Corps
Créer une expérience avec répartition du trafic
Stratégie de répartition du trafic pour cette expérience
percentage, segment Répartition du trafic associant les variations à des pondérations ou à des segments
1Show child attributes
Show child attributes
Configuration de l’attribution des utilisateurs aux variations
Show child attributes
Show child attributes
Flux d’authentification auquel cette expérience s’applique
ID de l’indicateur de fonctionnalité sur lequel cette expérience est basée
^flg_[A-HJ-NP-Za-km-z1-9]+$Nom convivial de l’expérience
3 - 255^(?!.*\x00)\S(.*\S)?$Description de l’expérience
3 - 1024^(?!.*\x00)\S(.*\S)?$Réponse
Expérience créée avec succès.
percentage, segment Show child attributes
Show child attributes
Show child attributes
Show child attributes
^exp_[A-HJ-NP-Za-km-z1-9]+$Filtrer par status. Correspondance exacte.
draft, active, paused, completed, archived