세그먼트 만들기
Creates a new player segment by defining the conditions on player properties. Also, create actions to target the player segments for a title.
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| InvalidSegment | 1242 |
| NameNotAvailable | 1058 |
| ProductDisabledForTitle | 1609 |
| SegmentManagementInvalidInput | 10005 |
| SegmentManagementInvalidSegmentId | 10004 |
| SegmentManagementInvalidSegmentName | 10006 |
| SegmentManagementNoExpressionTree | 10001 |
| SegmentManagementSegmentCountOverLimit | 10003 |
| SegmentManagementTriggerActionCountOverLimit | 10002 |
| UnknownError | 1039 |
POST
/
Admin
/
CreateSegment
Create Segment
curl --request POST \
--url https://{titleId}.playfabapi.com/Admin/CreateSegment \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [
{
"SegmentAndDefinitions": [
{
"AllPlayersFilter": {}
}
]
}
],
"EnteredSegmentActions": [
{
"BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
}
}
],
"LeftSegmentActions": [
{
"ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
}
}
]
}
}
'import requests
url = "https://{titleId}.playfabapi.com/Admin/CreateSegment"
payload = { "SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [{ "SegmentAndDefinitions": [{ "AllPlayersFilter": {} }] }],
"EnteredSegmentActions": [{ "BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
} }],
"LeftSegmentActions": [{ "ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
} }]
} }
headers = {
"X-SecretKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-SecretKey': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
SegmentModel: {
Name: 'My user segment',
SegmentOrDefinitions: [{SegmentAndDefinitions: [{AllPlayersFilter: {}}]}],
EnteredSegmentActions: [{BanPlayerAction: {BanHours: 2, ReasonForBan: 'Not played for a year'}}],
LeftSegmentActions: [
{
ExecuteAzureFunctionAction: {AzureFunction: 'AzureFunction1', FunctionParameter: '{"InputParam": "1"}'}
}
]
}
})
};
fetch('https://{titleId}.playfabapi.com/Admin/CreateSegment', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/Admin/CreateSegment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'SegmentModel' => [
'Name' => 'My user segment',
'SegmentOrDefinitions' => [
[
'SegmentAndDefinitions' => [
[
'AllPlayersFilter' => [
]
]
]
]
],
'EnteredSegmentActions' => [
[
'BanPlayerAction' => [
'BanHours' => 2,
'ReasonForBan' => 'Not played for a year'
]
]
],
'LeftSegmentActions' => [
[
'ExecuteAzureFunctionAction' => [
'AzureFunction' => 'AzureFunction1',
'FunctionParameter' => '{"InputParam": "1"}'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-SecretKey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Admin/CreateSegment"
payload := strings.NewReader("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-SecretKey", "<api-key>")
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))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Admin/CreateSegment")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Admin/CreateSegment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-SecretKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {
"ErrorMessage": "<string>",
"SegmentId": "<string>"
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}인증
This API requires a title secret key, available to title admins, from PlayFab Game Manager.
본문
application/json
Send all the segment details part of CreateSegmentRequest
Send all the segment details part of CreateSegmentRequest
Segment model with all of the segment properties data.
Show child attributes
Show child attributes
마지막 수정일 2026년 10월 6일
이 페이지가 도움이 되었나요?
⌘I
Create Segment
curl --request POST \
--url https://{titleId}.playfabapi.com/Admin/CreateSegment \
--header 'Content-Type: application/json' \
--header 'X-SecretKey: <api-key>' \
--data '
{
"SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [
{
"SegmentAndDefinitions": [
{
"AllPlayersFilter": {}
}
]
}
],
"EnteredSegmentActions": [
{
"BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
}
}
],
"LeftSegmentActions": [
{
"ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
}
}
]
}
}
'import requests
url = "https://{titleId}.playfabapi.com/Admin/CreateSegment"
payload = { "SegmentModel": {
"Name": "My user segment",
"SegmentOrDefinitions": [{ "SegmentAndDefinitions": [{ "AllPlayersFilter": {} }] }],
"EnteredSegmentActions": [{ "BanPlayerAction": {
"BanHours": 2,
"ReasonForBan": "Not played for a year"
} }],
"LeftSegmentActions": [{ "ExecuteAzureFunctionAction": {
"AzureFunction": "AzureFunction1",
"FunctionParameter": "{\"InputParam\": \"1\"}"
} }]
} }
headers = {
"X-SecretKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-SecretKey': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
SegmentModel: {
Name: 'My user segment',
SegmentOrDefinitions: [{SegmentAndDefinitions: [{AllPlayersFilter: {}}]}],
EnteredSegmentActions: [{BanPlayerAction: {BanHours: 2, ReasonForBan: 'Not played for a year'}}],
LeftSegmentActions: [
{
ExecuteAzureFunctionAction: {AzureFunction: 'AzureFunction1', FunctionParameter: '{"InputParam": "1"}'}
}
]
}
})
};
fetch('https://{titleId}.playfabapi.com/Admin/CreateSegment', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/Admin/CreateSegment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'SegmentModel' => [
'Name' => 'My user segment',
'SegmentOrDefinitions' => [
[
'SegmentAndDefinitions' => [
[
'AllPlayersFilter' => [
]
]
]
]
],
'EnteredSegmentActions' => [
[
'BanPlayerAction' => [
'BanHours' => 2,
'ReasonForBan' => 'Not played for a year'
]
]
],
'LeftSegmentActions' => [
[
'ExecuteAzureFunctionAction' => [
'AzureFunction' => 'AzureFunction1',
'FunctionParameter' => '{"InputParam": "1"}'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-SecretKey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Admin/CreateSegment"
payload := strings.NewReader("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-SecretKey", "<api-key>")
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))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Admin/CreateSegment")
.header("X-SecretKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Admin/CreateSegment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-SecretKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"SegmentModel\": {\n \"Name\": \"My user segment\",\n \"SegmentOrDefinitions\": [\n {\n \"SegmentAndDefinitions\": [\n {\n \"AllPlayersFilter\": {}\n }\n ]\n }\n ],\n \"EnteredSegmentActions\": [\n {\n \"BanPlayerAction\": {\n \"BanHours\": 2,\n \"ReasonForBan\": \"Not played for a year\"\n }\n }\n ],\n \"LeftSegmentActions\": [\n {\n \"ExecuteAzureFunctionAction\": {\n \"AzureFunction\": \"AzureFunction1\",\n \"FunctionParameter\": \"{\\\"InputParam\\\": \\\"1\\\"}\"\n }\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"status": "<string>",
"data": {
"ErrorMessage": "<string>",
"SegmentId": "<string>"
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}